Matplotlib 是最常用的 2D 绘图库之一,也是一款很实用的数据可视化工具,但是有时候你画出的图很难正好符合心意。比如说你可能遇到下面这些问题:
怎么更改图例上的标签名称? 如何设置刻度线? 怎样将比例设置为对数? 我该怎么给图表添加注释和箭头? 如何给我的图表添加网格线?本文收集了如何自定义你的 matplotlib 绘图的常见问题和答案,也可以作为 matplotlib 快速绘图的速查表,但不是 matplotlib 的入门介绍。如果你对这个库还不熟悉,可以看看它的文档。
进群:548377875 即可获取数十套pdf哦!
文章涵盖的话题包括图表、图表属性、图例、轴、注释和保存图表。
初步小贴士
首先,导入 matplotlib
import matplotlib.pyplot as plt
在 Jupyter Notebook 中,你可以把下面这行代码包含在内,这样每次想画图的时候就不用必须调用 plt.show()了。
%matplotlib inline
另一个方便的技巧是,如果你不想出现
之前:
之后:
图表和子图(subplot)
问:我该怎么增加图表的大小?
很多时候,图表的默认尺寸都很小。你可以添加参数 figsize,像下面这样以英寸为单位指明图形的高度和宽度。
plt.figure(figsize=(20,10))
问:什么是子图(subplot)?我该怎么创建和 *** 作子图?
子图就是一组更小的轴,它们一起存在于单个图中。下面是 2X2 形式的 4 个子图示例:
这些子图是用下面这些代码创建的。我们调用 plt.subplot,并指明 3 个数字。它们指行、列和子图的数量。
for i in range (1,5): plt.subplot(2,2,i) plt.text(0.5,0.5,str((2,i)),ha=’center’,Fontsize = 10) plt.tight_layout()
在上面的子图中,图中的文本是对这 3 个数字的引用。子图编号的顺序是左上方开始的行,从数字 1 开始。例如,左上图是子图编号 1,右上图是子图编号 2,左下图是子图编号 3,右下图是子图编号 4.
注意,你必须调用 plt.subplot(2,1) 来激活子图。
问:我的子图布局看着很丑,该怎么调整?
下面例子中,子图之间靠的太近了,看着有点挤。我们可以通过调用 plt.tight_layout() 来修正。它会清理子图之间的填充部分,让图表看起来更清爽。
之前:
之后:
问:怎么向我的图表添加网格线?
plt.grID(True)
风格和属性
问:如何修改图表中线条的颜色/宽度/风格?
你可以传递和设置参数 color,linewidth 和 linestyle。
plt.plot(x,y,color = ‘green’,linewidth = 2,linestyle = “-”)
下面是一些你可以选择的线条风格:
问:怎样修改标记的样式或颜色?
你可以传递和设置参数 marker 和 color,如下所示:
plt.scatter(x,marker = ‘o’,color = ‘red’)
这里是一些供你选择的标记:
问:怎么修改线条的透明度?
向图表传入 Alpha 参数表示线条的透明度,它的设置范围在 0 到 1 之间,其中 0 表示完全透明,1 表示无透明。
plt.plot(x,Alpha = 0.1)
下图展示了当 Alpha 分别为 0.9,0.5 和 0.1 时的透明效果:
图例
问:该怎样为我的图表添加图例?
如果你的图表上没有自动出现图例,你可以用如下代码来显示图例。
plt.legend()
问:该如何修改图例出现的位置?
你可以向 loc 参数中传入以下参数:upper right,upper left,lower left,lower right,right,center left,center right,lower center,upper center,center,分别表示右上角,左上角,左下角,右下角,右角,左中角,右中角,下中心,上中心,中心位置。
plt.legend(loc = ‘lower right’);
问:该怎样修改图例中的标签名称?
方法1:
比方说你有 10 个图例项,你只想修改第一个图例项中的标签。将图例保存到变量 L 之后,可以用“L.get_texts()[0]”调用图例中的第一项,手动设置为你想用的文本。在下面的例子中,我们将图例修改为了‘line123’。
L = plt.legend()get_texts()[0].set_text('line123')
方法2:
另外,你可以创建一列标签名称,设置图例标签等于你创建的列表。
mylabels = ['happy','sad','nervous','angry','neutral']plt.legend(labels = my_labels)
问:如何修改图例大小?
如果想设置具体图表中的图例大小,你可以传入 Fontsize 参数。
plt.legend(Fontsize = 10);
也可以不用数字表示字体大小,像下面这样 *** 作:
plt.legend(Fontsize = 'x-large');
轴
问:如何命名 x 轴和 y 轴的标签?以及如何修改字体大小?
根据你想具体使用的哪个轴,你可以叫他们‘ylabel’或‘xlabel’,如下所示。第一项就是你想让轴使用的名称。如果想设置字体大小,像下面这样嵌入 Fontsize 参数:
plt.ylabel('Income',Fontsize = 15) #for y labelplt.xlabel('Age',Fontsize = 15) #for x label
问:我该如何设置刻度线?
第一个参数设置刻度线所在的位置,第二个参数设置刻度线旁边的标签。
plt.yticks([0,4,6,7,10],[“0”,“2B”,"4B”,“8B”,“10B”])plt.xticks([0,1,3,5],“1oz”,"2oz”,“3oz”,“4oz”])
问:如何设置轴的长度?
plt.ylim(-1.0,1.0) #for y axisplt.xlim(0,50) #for x axis
问:如何将比例修改为对数?
plt.yscale(“log”) #for y axisplt.xsclae("log") #for x axis
注释
问:如何向图表添加注释和箭头?
我们可以创建注释,并指明注释 xy 参数的坐标。xytext 定义了标签的坐标。如果我们想添加箭头,需要使用 arrowprops 来显示箭头。
plt.annotate(‘sentosa’,xy = (5.0,3.5),xytext(4.25,4.0),arrowprops={'color': 'red'})
保存图表
按自己的需要自定义完图表后,就该保存了。这里我们将示例中的图表命名为“plot1”,用如下方式将图表保存到你的工作目录中。
plt.savefig('plot1.jpg')
最后一点
如果你在 Jupyter Notebook 中画了一个非常大的图表的话,你的 Jupyter Notebook 会变得非常慢。
如果你将鼠标悬停在图形的左侧,会出现一个如下所示的灰色框。双击该灰色框,就能隐藏你的图表,从而让 Jupyter Notebook 可以正常运行。这也有助于滚动图表。
希望本文对你使用 matplotlib 绘图有所帮助。
总结以上是内存溢出为你收集整理的轻松可视化:Matplotlib绘图终极指南!就是这么简单!全部内容,希望文章能够帮你解决轻松可视化:Matplotlib绘图终极指南!就是这么简单!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)