微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

matplotlib通过单个列表迭代子图轴数组

如何解决matplotlib通过单个列表迭代子图轴数组

ax返回值是一个numpy的阵列,其可以,我相信,重新成形而不的数据的任何复制。如果使用以下内容,则会得到一个线性数组,可以对其进行干净的迭代。

nrow = 1; ncol = 2;
fig, axs = plt.subplots(nrows=nrow, ncols=ncol)

for ax in axs.reshape(-1): 
  ax.set_ylabel(str(i))

当ncols和nrows均为1时,这并不成立,因为返回值不是数组;您可以将返回值转换为具有一个元素的数组以保持一致性,尽管感觉有点像笨拙:

nrow = 1; ncol = 1;
fig, axs = plt.subplots(nrows=nrow, ncols=nrow)
axs = np.array(axs)

for ax in axs.reshape(-1):
  ax.set_ylabel(str(i))

重塑文档。该参数-1导致重塑以推断输出的尺寸。

解决方法

是否有一种简单/干净的方法来迭代子图等返回的轴数组

nrow = ncol = 2
a = []
fig,axs = plt.subplots(nrows=nrow,ncols=ncol)
for i,row in enumerate(axs):
    for j,ax in enumerate(row):
        a.append(ax)

for i,ax in enumerate(a):
    ax.set_ylabel(str(i))

甚至适用于nrowncol == 1

我尝试了列表理解,例如:

[element for tupl in tupleOfTuples for element in tupl]

但是如果nrowsncols == 1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。