多个 Python 地块未显示其他子地块中的地块
Multiple Python Plots Not Showing Plots in Other Subplots
我写了一个代码来根据可用单元格的数量自动绘制多个网格子图,我做了以下事情:
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()
不知何故上面的代码只显示了两个图上的数据,不知道为什么?
您的嵌套 for 循环正在替换之前专栏中 ax
字典的内容。去掉嵌套循环,根据subgrd
计算行列。这样,您只需为每个键分配一次。
cell=10
ax = {}
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(10, 4))
row_count = 2
column_count = (cell+row_count-1) // row_count
for subgrd in range(cell):
row = subgrd // column_count
column = subgrd % column_count
key = 'ax' + str(subgrd)
value = plt.subplot2grid((row_count, column_count), (row, column))
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()
我写了一个代码来根据可用单元格的数量自动绘制多个网格子图,我做了以下事情:
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()
不知何故上面的代码只显示了两个图上的数据,不知道为什么?
您的嵌套 for 循环正在替换之前专栏中 ax
字典的内容。去掉嵌套循环,根据subgrd
计算行列。这样,您只需为每个键分配一次。
cell=10
ax = {}
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(10, 4))
row_count = 2
column_count = (cell+row_count-1) // row_count
for subgrd in range(cell):
row = subgrd // column_count
column = subgrd % column_count
key = 'ax' + str(subgrd)
value = plt.subplot2grid((row_count, column_count), (row, column))
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()