Matplotlib 是支持 Python 语言的开源绘图库,一个用于创建出版质量图表的绘图包(主要是2D方面),其支持丰富的绘图类型、简单的绘图方式以及完善的接口文档,广大科研狗们可以利用它得到一系列漂亮的图片啦!
在使用 Notebook 环境绘图时,需要先运行%matplotlib inline 命令。这条命令的作用是将 matplotlib 绘制的图形嵌入在当前页面中。
matplotlib API函数都位于matplotlib.pyplot模块中,需要导入该模块,并约定简称为plt。
一般常规的数据图的绘图分为如下步骤:
-
导入 matplotlib 包相关工具包
-
准备数据
-
绘制原始曲线
-
定制修改图片
-
显示、保存图片
下面将按以上步骤具体介绍绘制方法:
准备数据
绘制原始曲线
matplotlib的图像都位于Figure对象中,可以采用plt.figure创建一个新的图形对象:
fig=plt.figure()
接下来,绘图布局的创建主要有三种方法:
axes=figure.add_axes([left,bottom,width,height])
fig, axes = pyplot.subplots(行数,列数)
axes = figure.add_subplot(行数,列数,序号)
首先,介绍第一种方法add_subplot( )
axes = figure.add_subplot(行数,列数,序号)
这其中,figure相当于画板,而ax则相当于画板上的画布。
接下来,介绍第二种方法add_axes( ),该方法最为繁琐,需要判别绘图区的位置。
axes=figure.add_axes([left,bottom,width,height])
其中
left:画布左侧边缘线与Figure画板左侧边缘线的距离
bottom:画布底部边缘线与Figure画板底部边缘线的距离
width:画布的宽度
height:画布的高度
第三种方法,plt.subplots( ),可以创建一个新的Figure,并返回一个含有已创建的subplot对象的NumPy数组。这样,可以轻松地对axes 数组进行索引,就好像是一个二维数组一样。
fig, axes = pyplot.subplots(行数,列数)
其中,线条的标记类型和线型必须放在颜色后面。
第三种方法最为简便,所以推荐学习这种方法。
定制修改图片
颜色、标记和线型
matplotlib的plot函数接受一组x和y坐标,还接受一个表示颜色和线型的字符串缩写。具体的颜色、标记线型在上面的实例中已经操作过,所以这边不再累述,下面就将几种常见的设置总结一下。
符号和颜色之间的对应关系
b: blue蓝色
g: green绿色
r: red红色
c: cyan青色
m: magenta品红
y: yellow黄色
k: black黑色
w: white白色
符号和线型之间的对应关系
– 实线
— 短线
-. 短点相间线
: 虚点线
标记风格有多种:
. Point marker
o Circle marker
v Triangle down marker
^ Triangle up marker
< Triangle left marker
> Triangle right marker
1 Tripod down marker
2 Tripod up marker
3 Tripod left marker
4 Tripod right marker
s Square marker
p Pentagon marker
* Star marker
h Hexagon marker
H Rotated hexagon
D Diamond marker
d Thin diamond marker
+ Plus marker
刻度、标签和图例
给图形添加图例,是在添加suploot的时候添加参数label,之后调用axes.legend( )或plt.legend( )来显示图例。
图例中的 loc 参数标记图例位置,1,2,3,4 依次代表:右上角、左上角、左下角,右下角;0 代表自适应。loc=\’best\’会选择最不碍事的地方。
诸如xlim、xticks、xticklabels之类的方法,分别控制图表的范围、刻度位置、刻度标签等。
若是在图像中添加一些注解文字,可以通过test、arrow和annotate等函数进行添加。
还有标题、坐标轴名称的设置等操作按以下代码实例说明:
显示、保存图片
显示图片采用plt.show( ),利用plt.savefig( )可以将图片保存到文件,其中选项dpi可以控制分辨率,bbox_inches可以剪除当前图表周围的空白部分。