在实现matplotlib绘图时,往往还需要对其细节进行更详尽的绘制,matplotlib库提供了丰富的方法,和属性供选择。
__author__ = 'lee' # 2015年11月05日13:03:37 import matplotlib.pyplot as plt import numpy as np def f(t): return np.exp(-t) * np.cos(2*np.pi*t) t1 = np.arange(0., 5., 0.1) t2 = np.arange(0., 5., 0.02) plt.figure(1) plt.subplot(211) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(212) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show()
绘制形状如图:
t1,t2分别是两个0-5的等差数列。
plt.figure(1)表示绘制图形1,当如果还有代码例如:plt.figure(2)时,会生成另外的图形,也就是说,在程序执行时,便会生成两个图形。
plt.figure()会返回一个figure对象,例如:
fig = plt.figure()
可以通过figure对象提供的多种方法,对这个图形进行设置。详尽的方法在matplotlib官方帮助文档的904页开始。(注:Release 1.2.1)
比如:
fig.suptitle(“This is the figure’s title”, fontsize=14, fontweight=”bold”)
这个语句会生成fig这个对象,也就是这个图的标题。
这里在一个图中生成了两个子图,用了plt.subplot()方法.
当然也有其他的方法,利用plt.figure()返回的fig对象的方法生成子图,如:
ax = fig.add_subplot(111)
不过这里的添加子图的参数是111,也就是在这个图是1横1纵的第一个图,即这个figure对象中只有一个图。
这里返回一个Axes对象(注:帮助文档P907),利用得到的Axes对象可以对这个子图进行详细的设置,比如:
ax.set_title(“axes title”) #设置这个图的标题
ax.set_xlabel(“xlabel”) #设置这个图的x轴的标签
ax.set_ylabel(“ylabel”) #y轴标签
如果不利用ax对象,按照以前的办法,利用plt对轴标签进行设置也是可以的,如:
plt.xlabel(“This is the xlabel”)
但是使用这个代码进行设置的时候,一点需要注意是对哪一个图进行标签设置。
如置顶代码,有两个图,当程序开始执行plt.subplot(212)时,当前的图就是212图,
那么进行标签设置的时候,也是对其标签进行的设置。如果还需要对211图进行设置的话,
就还需要执行一下语句:plt.subplot(211),这样程序又将当前图定位为211图。