参考网址:官方文档
参考网址:基于官方教程的matplotlib简介
整体画图流程
matplotlib以层次化的结构组织对象,并提供了两种操纵这些对象的方式:1.直接调用对象的成员函数; 2.使用类似matlab的命令行方式,第二种方式在数据分析中更加常用。在matplotlib.pyplot模块中封装好了很多命令行风格的函数,导入该模块的一般写法:
import matplotlib.pyplot as plt
第一步:在画图之前,要准备好白纸
matplotlib将画板组织成两个对象figure和axes,在一个figure上可以创建多个axes,而axes只能属于某一个figure,画图最终是在axes上进行绘制的。关于matplotlib中的几个关键概念可以参考General Concepts
- 创建白纸:
fig = plt.figure(num=1, figsize=(x,y))
图片的编号以及大小等属性 - 创建子图:
方式一:plt.subplot(211)
2表示两个子图,11:所在位置(第1行,第1列)。(plt 针对当前子图或者全局操作,会自动在当前的figure上创建子图。)
方式二:
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
- 如果要创建很多个子图,可以直接使用
fig, axes = plt.subplots(2, 3)
- 注:如果figure()和subplot()没有定义的话,都默认为figure(1)和subplot(111)
如果要创建很多个子图,可以这样定义fig, axes = plt.subplots(2, 3)
第二步:正式画图
再次强调绘制内容(画图、标题、文本等)都是画在子图axes之上的。这里为了凸显出整体流程,只举最简单的例子。具体绘制细节放在文章下一部分介绍。
绘制同样有两种方式:
-
plt.plot( )
这种方式会自动绘制在当前子图上 -
axes.plot()
把图画在指定的子图上
第三步:显示&保存图片
- 显示图片
plt.show( )
所有的图纸都会显示 - 存储图片``
详解plot( )
参考网址:官方文档matplotlib.pyplot.plot
通常的调用方法:
plot([x], y, [fmt], **kwargs)
- 没有x的话会根据y的长度自动生成,
- fmt = '[color][marker][line]' 用缩写定义线条风格的三个方面:颜色,点的形状,连线的形状。也可以在**kwargs中分别指定。(具体支持哪些缩写可以参考官方文档列的表格)。
- **kwargs 中可以是任意一个Line2D的属性
- 该函数返回的是一个Line2D的对象,这个对象包含了和一条线相关的所有信息,画一条线就相当于创建一个Line2D对象。
最后举一个基本的例子
plt.plot(range(10),'bo--', label='example',linewidth='2')
plt.legend(loc='best') #必须有plt.legend()才能显示图标,在这里可以对图标显示加以控制
plt.title('example')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.grid(True)
plt.show()