matplotlib AIP入门
1.Figure和Subplot
matplotlib的图像都位于Figure对象中。你可以用plt.figure创建一个新的Figure:
fig=plt.figure()
这时会弹出一个空窗口。plt.figure有一些选项,特别是figsize,它用于确保图片保存到磁盘时具有一定大小和纵横比。matplotlib中的Figure还支持一种MATLAB式的编号架构(例如plt.figure(2))。通过plt.gcf()即可得到当前Figure的引用。
不能通过空Figure绘图。必须用add_subplot创建一个或多个subplot才行
ax1=fig.add_subplot(2,2,1)
这段代码的意思是:图像应该是2*2的,且当前选中的是4个subplot中的第一个(编号从1开始)。如果再把后面两个subplot也创建出来,最终得到的图像如图所示
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
如果这时发出一条绘图命令(plt.plot(randn(50).cumsum(),'k--')),matplotlib就会在最后一个用过的subplot(如果没有则创建一个)上进行绘制
from numpy.random import randn
plt.plot(randn(50).cumsum(),'k--')
结果为:
‘k--’是一个线型选项,用于告诉matplotlib绘制黑色虚线图。上面那些由fig.add_subplot所返回的对象是AxesSubplot对象,直接调用它们的实例方法就可以在其它空着的格子里画图了
_=ax1.hist(randn(100),bins=20,color='k',alpha=0.3)
ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))
结果为:
由于根据特定布局创建Figure和subplot是一件非常常见的任务,于是便出现了一个更为方便的方法(plt.subplots),它可以创建一个新的Figure,并返回一个含有已创建的subplot对象的NumPy数组
fig,axes=plt.subplots(2,3)
print axes