本节主要解决在一个figure中放置多福图,以及图中一些注释文字的添加等问题。
先看一个效果图:
下面是实现代码:
__author__ = 'hust' import numpy as np import matplotlib.pyplot as plt def f(t): return np.exp(-t) * np.cos(2 * np.pi * t) t1 = np.arange(0.0, 5.0, 0.1) t2 = np.arange(0.0, 5.0, 0.02) plt.figure(1) plt.subplot(2,1,1) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.xlabel("independent variable") plt.ylabel("dependent variable") plt.title('top') plt.subplots_adjust(hspace=.5) plt.subplot(2,1,2) plt.plot(t2, np.cos(2 * np.pi * t2), 'r--') plt.annotate('just for example', xy = (3.0, np.cos(2 * np.pi * 3.0)), xytext = (3.5, np.cos(2 * np.pi * 3.0) * 1.2),arrowprops=dict(facecolor='black', shrink=0.05)), plt.xlabel('independent variable') plt.ylabel('dependent variable') plt.title('test') plt.show()
解释一下上面代码中用到的几个函数:
subplot(nrows, ncols, plot_number), nrows和ncols指定将图像分割成nrows * ncols个子图,plot_number标识具体是哪一个子图,
计算方式是从左至右,从上至下。
有时我们看到类似subplot(211)这种,是因为三个参数都不超过10,函数就支持省掉中间的逗号。
subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=None, hspace=None)
我在前面调用的时候使用了关键字参数。这个函数用于设置子图之间的间隙,每个参数的含义很直观,可根据需要使用。
最后说下图中的文字,这个例子,使用了三种:
title, xlabel, ylabel。这三种是比较固定的
还有一种标注性的文字,可以指定标志点(箭头所指的点)和文字的位置,还能指定箭头的风格。