之前介绍了pyplot里画简单的数据曲线,接下来介绍subplot相关的内容。
subplot是为了在一张图里放多个子图,与Matlab里的subplot类似。
pyplot是一个有状态的对象,包含了当前的图,画图区域,等。
pyplot通过调用subplot或者add_subplot来增加子图,
如
p1 = plt.subplot(211) 或者 p1 = plt.subplot(2,1,1), 表示创建一个2行,1列的图,p1为第一个子图,
然后在p1上画曲线,设置标注标题图例等,就可以使用p1来调用相关的函数,
与pyplot相同的是,可以直接使用pyplot画图,添加label,等,也可以是使用p1来做这些事情。
与pyplot不同的是,有一些函数的名字不太一样,添加坐标轴的标注的函数为set_xlabel和set_ylabel,
添加标题set_title,只是给子图添加标题,由于pyplot是一个有状态的对象,所以pyplot.title也是给当前子图添加标题,
如果要给整个图添加标题,可以使用pyplot.suptitle(text)。
#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt def f1(t): return np.exp(-t)*np.cos(2*np.pi*t) def f2(t): return np.sin(2*np.pi*t)*np.cos(3*np.pi*t) t = np.arange(0.0,5.0,0.02) plt.figure(figsize=(8,7),dpi=98) p1 = plt.subplot(211) p2 = plt.subplot(212) p1.plot(t,f1(t),"g-",label="$f(t)=e^{-t} \cdot \cos (2 \pi t)$") p2.plot(t,f2(t),"r-.",label="$g(t)=\sin (2 \pi t) \cos (3 \pi t)$",linewidth=2) p1.axis([0.0,5.01,-1.0,1.5]) p1.set_ylabel("v",fontsize=14) p1.set_title("A simple example",fontsize=18) p1.grid(True) p1.legend() p2.axis([0.0,5.01,-1.0,1.5]) p2.set_ylabel("v",fontsize=14) p2.set_xlabel("t",fontsize=14) p2.legend() plt.show()
最后得到的图如下,
这些在Matplotlib的手册里面都有,英文的,这里算是翻译吧,顺便总结一下。