通过for循环

时间:2017-12-28 00:17:12

标签: python matplotlib

在Matplotlib中,我使用以下方法设置轴标签:     axes1.set_ylabel(' ....&#39)

如果我有三个轴,有没有办法使用循环来执行以下操作?:

for i in range(3):
    axes[i].set_ylabel('AVG')

当然,这不是正确的语法,因为我没有使用列表/字典。但是,有人有任何建议吗?

2 个答案:

答案 0 :(得分:1)

这是我用于多个垂直轴的方法:

f, axes = plt.subplots(nrows=3, ncols=1, figsize=(12,5))
try:
    iter(axes)       # Check if axes can be iterated over
except TypeError:
    axes = [axes]    # If not, then make it into a list

for ax in axes:
    ax.plot(x, y)
    ax.set_ylabel('AVG')

通常我甚至会根据我拥有的行数来改变数字大小。如果你有ncols > 1,这样做会有点复杂。因此,这仅适用于垂直图。

答案 1 :(得分:0)

将您的轴放在一个列表中:

my_axes = []
for n in range(1, 4):
    my_axes.append(fig.add_subplot(1, 3, n))
for ax in my_axes:
     ax.set_ylabel('AVG')