【发布时间】:2020-12-07 07:35:37
【问题描述】:
我编写了一个代码来根据可用单元格的数量自动绘制多个网格子图,我做了以下操作:
cell=10
ax = {}
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(10, 4))
for subgrd in range(cell):
if subgrd < cell / 2:
for subgrd2 in range(int(cell / 2)):
key = 'ax' + str(subgrd)
value = plt.subplot2grid((2, int(cell / 2)), (0, subgrd2))
ax[key] = value
else:
for subgrd2 in range(int(cell / 2)):
key = 'ax' + str(subgrd)
value = plt.subplot2grid((2, int(cell / 2)), (1, subgrd2))
ax[key] = value
print("count ax",len(ax))
for axval in range(len(ax)):
print(str(axval))
ax['ax'+str(axval)].plot([[1,2],[4,3]])
ax['ax'+str(axval)].axes.xaxis.set_visible(False)
ax['ax'+str(axval)].axes.yaxis.set_visible(False)
plt.show()
不知何故,上面的代码只显示了两个图上的数据,不知道为什么?
【问题讨论】:
-
首先,插入
print("if", cell, subgrd, subgrd2)和print("else", cell, subgrd, subgrd2)以查看脚本没有按照您的想法执行。这就解释了为什么字典不包含您认为它包含的内容。 -
@Mr.T 现在很有意义!谢谢
标签: python matplotlib subplot