通常的引入约定是:
import matplotlib.pyplot as plt
fig,axes=plt.subplots(2,3)
这种用法,可以一下子产生2x3个子窗口,并且以numpy数组的方式保存在axes中,而fig仍然是整个图像对象,这样我们可以通过对axes进行索引来访问每个子窗口。
wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。
使用plt.subplots_adjust(wspace=0,hspace=0)即可将宽高间距缩为0。
颜色、标记和线型:
matplotlib的plot函数接受一组X和Y坐标,还可以接受一个表示颜色和线型的字符串缩写。例如要根据x和y绘制绿色虚线,可以执行如下代码:
ax.plot(x,y,'g--')
或者ax.plot(x,y,linestyle='--',color='g')
可以更改实际数据点的标记,通过marker=''
可以通过drawstyle选项修改插值方式,默认的非实际数据点是按线性方式插值的。
刻度、标签和图例:
xlim、xticks、xticklabels之类的方法用于分别控制图表的范围、刻度位置、刻度标签等。
xlim会将X轴的范围设置为0到10:通过ax.set_xlim设置,如果要查看某个axes的xlim,就用ax.get_xlim
设置标题、轴标签、刻度以及刻度标签:
fig=plt.figure()
ax=fig.add_subplot(1,1,1)#创建1*1的图像且目前针对的是第一个子图。
ticks=ax.set_xticks([0,250,500,750,1000])
labels=ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')#设置x轴标签,rotation表示刻度距离
然后使用set_xlabel为X轴设置名称,并用set_title设置标题。对于Y轴的修改方式,只需要将上述代码中的x替换为y即可。
添加图例:
图例是另一种用于标识图表元素的重要工具。添加图例的方式:
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(),'k',label='one')
ax.legend(loc='best')#如果不吹毛求疵的话,传入best是最好的选择,因为它会选择最不碍事的位置。
注解以及在subplot上绘图:
注解可以通过text、arrow和annotate等函数进行添加。
例:ax.text(x,y,'Hello world!',family='monospace',fontsize=10)
注解中也可以添加箭头➡️
这个图好厉害但是这一块我还有些疑惑没搞清,先把图截下来吧。
图形的绘制要麻烦一些,matplotlib中有一些表示常见图形的对象,被称为块(patch)。有些块可以在matplotlib.pyplot中找到,但完整的集合位于matplotlib.patches。
如果要在图表中添加图形,需要创建块对象shp,然后通过ax.add_patch(shp)将其添加到subplot中。
将图表保存到文件:
利用plt.savefig可以将当前图表保存到文件。如果要将图表保存为SVG文件,只需输入:
plt.savefig('figpath.svg')
在发布图片时最常用到的两个重要选项是dpi(控制“每英寸点数”分辨率)和bbox_inches(可以剪除当前图表周围的空白部分)。
例如,要得到一张带有最小白边且分辨率为400DPI的PNG图片,可以:
plt.savefig('figpath.png',dpi=400,bbox_inches='tight')
matplotlib配置
可以管理图像大小,subplot边距、配色方案、字体大小、网格类型等。
pandas中的绘图函数
要组装一张图表,需要用它的各种基础组件才行:数据展示、图例、标题、刻度标签以及其他注解型信息。
pandas中有许多能够利用DataFrame对象数据组织特点来创建标准图表的高级绘图方法。
1.线型图
s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot()
该Series对象的索引会被传给matplotlib,并用以绘制X轴。X轴的刻度和界限可以通过xticks和xlim选项进行调节。
dataframe的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例。