如果您创建了一个二维图的数组,例如用:
>>> fig, axarray = plt.subplots(3, 4)
然后axarray
是物体的2D阵列,用含有各元素的matplotlib.axes.AxesSubplot
:
>>> axarray.shape
(3, 4)
的问题是,当你索引axarray[0]
,实际上是一个索引整个行该阵列的,包含几个轴:
>>> axarray[0].shape
(4,)
>>> type(axarray[0])
numpy.ndarray
但是,如果您分配地址
>>> type(axarray[0,0])
matplotlib.axes.AxesSubplot
>>> axarray[0,0].set_title('Top left')
设置所有阵列中的轴的属性的一个快速的方法是将环在轴阵列上的平坦迭代器:阵列中的SA单个元件然后可以以正常的方式设置它的属性:
for ii,ax in enumerate(axarray.flat):
ax.set_title('Axis %i' %ii)
你能做的就是“解压”的阵列成单个轴对象的嵌套元组中的轴,虽然这时候你正在处理大量行/列变得有点尴尬的另一件事情:
fig, ((ax1, ax2, ax3, ax4), (ax5, ax6, ax7, ax8), (ax9, ax10, ax11, ax12)) \
= plt.subplots(3,4)
你是对的:每个子图都包含在ax数组中,并且可以独立地定制每个子图。例如:http://matplotlib.org/examples/pylab_examples/log_demo.html – lucasg