如果您创建一个 2D 绘图数组,例如:
>>> fig, axarray = plt.subplots(3, 4)
thenaxarray
是一个二维对象数组,每个元素包含一个matplotlib.axes.AxesSubplot
:
>>> axarray.shape
(3, 4)
问题是,当您 index 时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')
设置数组中所有轴的属性的一种快速方法是循环遍历轴数组上的平面迭代器:
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)