我听到的会忘记,我看到的能记住,我做过的才真正明白.
首先利用 (ipython --pylab) 可以进入Pylab 模式,这样IPython配置为使用你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK)。对于大部分用户而言,默认的后端就已经够用了。Pylab模式还会向IPython引入一大堆模块和函数以提供一种更接近MATLAB的界面。
检查是否正确打开 可以输入 一行代码检测( plot(np.arange(10)) )看是否显示一条直线
首先导入需要使用模块和包
import matplotlib.pylab as plt
然后使用画图前首先必须创建一张画板 使用如下代码fig = plt.figure()
之后需要添加画布 这里用到 add_subplot() 函数
第一种方法:
ax1 = fig.add_subplot(2,2,1) #意思是图像是2*2的,当前选中的是4个 subplot 中的第一个( 编号从跟第一个开始)
ax2 = fig.add_subplot(2,2,2) #第二个
第二种方法:更为简便 使用 subplots()
fig , axes = plt.subplots(2,2) 之后可以使用索引来选择每一个画布如 axes[0,1]
接下来可以调整subplot 周围的间距 这里用到subplots_adjust 方法
subplots_adjust(let = None, bottom = None, right = None, top = None, wspace = None, hspace = None)
其中wspace 是指 左右两列图之间的距离与单个图的宽度的比值。 hspace 是指上下图。
然后就可以画图了
ax.plot(x,y,'g--') 其中X,Y就是变量了可以预先指定,g 代表绿色,‘--’代表虚线 其他的线型和颜色可以查询官网文档
接着需要给图表添加刻度标签和图例
这里设定绘图范围可以使用plt.xlim() 和plt.ylim() (或者ax.set_xlim 方法) 如plt.xlim([0,10]) 会将X轴的范围设定在0 到10
添加刻度 使用 ax.set_xticks([0,250,500,750,1000]) 指定在哪里标刻度
对应的刻度名称使用 ax.set_xticklabels(['one','two','three'])
最后使用 ax.set_xlabel('string') 为 x 轴加上名称
需要标注图例时候 最好的方法就是 在画线时候 时候传入label 参数
如 ax.plot(randn(100).cumsum(),'k' , label = 'one')
ax.plot(randn(100).cumsum(),'k--',label = 'two')
然后调用ax.legend(loc = 'best') 来自动创建图例.
有时候还需要添加一些自定义的注解 可以通过text 、arrow 、 annotate 等函数添加,
text 可以将文本绘制在图标的指定 (x, y)位置, 还可以添加一些格式
ax.text( x, y , 'hello,world' , fontsize = 10)
再过分一点 可以添加箭头 使用 ax.annotate()
ax.annotate(label , xy =( , ) , xytext = ( , ) , arrowprops = dict(facecolor='black', shrink=0.05))
label 是注释的内容
xy 指定 箭头的位置
xytext 指定注释的位置
arrowprops 指定箭头的颜色 啥的
添加图形时候需要创建一个shp,然后通过 ax.add_patch(shp) 将图添加到 subplot 中
如 添加一个正方形 rec = plt.Rectangle((1,2),0.5 ,0.6 , color = 'k' ,alpha=0.3)
ax.add_patch(rec)
最后将图标保存到文件
plt.savefig('gigpath.png' , dpi = 400 , bbox_inches = 'tight')
第一个参数为保存的名称和格式 ,后两个参数都是有关图像的参数
我们在画图前可以设定默认参数 使用rc
plt.rc('gigure', figsize =(10,10))
第一个参数是自定义对象,如‘figure’ , 'axes'等等,第二个参数是设定的参数 ,实际中我们可以将自定义参数设定成为
一个字典,然后传入plt.rc()