我目前有一个matplotlib图形,具有16个子图,4列和4行。我生成了以下代码,这些代码循环遍历每个子图并在16个子图上绘制不同的数据:
fac_list = [one, two, three, four, five, six, seven, eight, nine, ten , eleven, twelve,
thirteen, fourteen, fifteen, sixteen]
color = ['blue','red']
ds_i = 0
for row in range(0,subplot_shape[0]):
for col in range(0,subplot_shape[1]):
fac = fac_list[ds_i]
plot('total',
currentname=fac,
subplot_index=(row,col),
linestyle='-',
marker='.',
label='NEW',
color=color[0])
leg2 = axes[row][col].legend(loc='upper left',bbox_to_anchor=(-0.10, 1.04), prop={'size':8},
frameon=False, markerscale=0, handlelength=0)
for line, text in zip(leg2.get_lines(), leg2.get_texts()):
text.set_color(line.get_color())
#axes[row][col].text(1.1,new_obj['total'].values[-1],new_obj['total'].values[-1],horizontalalignment='center',fontsize=5, rotation=45,
#transform=axes[row][col].transAxes, color=color[0])
ds_i += 1
目前,我已经知道了,因此注释行仅显示了fac_list中的最后一项的最终y轴值(十六),但是此值显示在我图中的每个子图中,而不仅仅是最后一个子图(这是它应该显示在下面的子图)。如何正确遍历子图,以便在每个对应的子图中显示fac_list中每个项目的最终y轴值(fac_list中的一个显示在子图(0,0)上,fac_list中的两个显示在子图上(0 ,1)等)?到目前为止,我没有尝试过任何方法。
答案 0 :(得分:0)
取消注释该行,并将其缩进到与列的for循环相同的缩进级别
for row in range(0,subplot_shape[0]):
for col in range(0,subplot_shape[1]):
...
...
for line, text in zip(leg2.get_lines(), leg2.get_texts()):
text.set_color(line.get_color())
# Place the following line as it is in this answer
axes[row][col].text(1.1,new_obj['total'].values[-1],new_obj['total'].values[-1],
horizontalalignment='center',fontsize=5, rotation=45,
transform=axes[row][col].transAxes, color=color[0])