如何迭代matplotlib子图中的轴

时间:2019-12-27 06:57:59

标签: python matplotlib

我正在尝试使用matplotlib为5x2子图添加标题,我编写的代码如下:

fig, axs = plt.subplots(5, 2, figsize=(2*len(cols)+1, 2*len(rows)+1))
for i, ax in axs.flat:

    # print(sum_cols_level[i]) 
      ax.set_title(cols_level[i])

运行此错误时

  

TypeError:无法解压缩不可迭代的AxesSubplot对象

cols_level是一个包含数字[1,2,3,4 ..等]的列表

我也尝试过

for i, ax in enumerate(axs.flat):

并收到此错误;

  

IndexError:索引9超出了大小为9的轴0的边界

我非常感谢有人可以解释斧头是如何工作的以及为什么我会得到这些错误!

1 个答案:

答案 0 :(得分:1)

正确的解决方案实际上取决于cols_level是什么。不过,问题似乎仍然是您正在尝试解压缩1D numpy平板电脑,因为它是2D的。忘记使用enumerate

fig, axs = plt.subplots(2, 2, figsize=(6,8))
cols_level = [f'ax_{i}' for i in range(len(axs.flat))]
for i, ax in enumerate(axs.flat):
      ax.set_title(cols_level[i])