Matplotlib是最受欢迎的二维图形库,但有时让你的图变得像你想象中好并不容易。
如何更改图例上的标签名称?如何设置刻度线?如何将刻度更改为对数刻度?如何在我的图中添加注释和箭头?如何在我的图中添加网格线?
本文收集了有关如何自定义Matplotlib图的常见问题和答案。这可以作为快速进行Matplotlib绘图的一个很好的速查表,而不是Matplotlib库的完整介绍。如果你不熟悉此库,请查看官方文档。本文介绍的主题包括图和图的属性,坐标轴,图例,注释和保存图。
首先,请确保导入matplotlib。
import matplotlib.pyplot as plt
%matplotlib inline
问:如何增加图的尺寸?
很多时候,默认大小太小。你可以添加参数figsize并以英寸为单位指定宽度和高度,如下所示。
plt.figure(figsize =(20,10))
plt.subplot
并指定三个数字。它们指的你需要的行数,列数和子图号。for i in range (1, 5):
plt.subplot(2, 2, i)
plt.text(0.5,0.5, str((2, 2, i)), ha=’center’, fontsize = 10)
plt.tight_layout()
plt.grid(True)
问:如何更改线条颜色、宽度或样式?
你可以传入参数color,linewidth和linestyle。
plt.plot(x,y,color ='green',linewidth = 2,linestyle =“ - ”)
plt.scatter(x,y,marker ='o',color ='red')
plt.plot(x,y,alpha = 0.1)
问:如何在我的图中添加图例?
如果图例未自动显示在图表上,则可以使用以下代码显示图例。
plt.legend()
plt.legend(loc ='right right');
L = plt.legend()
L.get_texts()[0] .set_text('line123')
选项2:
或者,你可以创建标签名称列表,并将图例标签设置为你创建的列表。
mylabels = ['happy', 'sad', 'nervous', 'angry', 'neutral']
plt.legend(labels = my_labels)
plt.legend(fontsize = 10);
plt.legend(fontsize ='x-large');
问:如何命名我的x和y轴标签?如何更改字体大小?
根据你要使用的轴,你可以调用“ylabel”或“xlabel”,如下所示。第一项是轴所需的名称。要设置字体大小,需要插入fontsize参数,如下所示。
plt.ylabel('Income', fontsize = 15) #for y label
plt.xlabel('Age', fontsize = 15) #for x label
plt.yticks([0,2,4,6,7,10],[“0”,“2B”,“4B”,“8B”,“10B”])
plt.xticks([0,1,2] ,3,4,5],[“0”,“1oz”,“2oz”,“3oz”,“4oz”])
plt.ylim(-1.0,1.0) #for y axis
plt.xlim(0, 50) #for x axis
plt.yscale(“log”) #for y axis
plt.xsclae("log") #for x axis
问:如何在我的图中添加注释和箭头?
plt.annotate('sentosa',xy =(5.0,3.5),xytext(4.25,4.0),arrowprops = {'color':'red'})
现在你已根据自己的喜好定制了图,需要进行保存!我调用我的图“plot1”(名字你可以自己起)!这会将图保存到你的工作目录。
plt.savefig( 'plot1.jpg')
如果你的Jupyter Notebook中有大量的图,你的Notebook会变得非常慢,在我参与项目时遇到过这种情况。所以,可以将鼠标悬停在图的左侧,这会出现如下所示的灰色框。双击灰色框,就可以隐藏图,使Jupyter Notebook可以正常运行,同时也方便滚动。