我想做的是在每行中显示3个图像(列)作为子图,这些图像正在显示,但彼此重叠。我尝试过手动调整它们,但是子图中的行数取决于“ n”值,因此无法对每n个手动调整。我尝试了“ fig.tight_layout()”,但徒劳。
关于如何克服这一点的任何想法?
coeffs=coeffs[1:][::-1]
for i,v in enumerate(coeffs,1):
toWork=[v[0], v[1], v[2]]
for j,a in enumerate(toWork):
ax = fig.add_subplot(i, 3, j+1)
ax.imshow(a, interpolation="nearest", cmap=plt.cm.gray)
ax.set_title(titles[j]+str(i), fontsize=10)
ax.set_xticks([])
ax.set_yticks([])
# fig.tight_layout()
# plt.subplots_adjust(top=1,bottom=0,left=0.10,right=0.95,hspace=0.1,wspace=100)
plt.subplot_tool()
plt.show()
答案 0 :(得分:0)
根据您的描述,这还不是很清楚。请提供一个minimal an verifiable example。但是,从您的代码来看,您正在使用i
变量创建不同数量的行,我认为这不是故意的。从docs我们可以看到子图的工作方式
import matplotlib.pyplot as plt
fig = plt.figure()
nrows, ncols = 3, 3 # total of 9 plots
for idx in range(9):
ax = fig.add_subplot(nrows, ncols, idx + 1)
ax.text(0.5, 0.5, idx)
fig.show()
因此,我们预定义了列和行的数量,然后索引到我们要使用的正确子图。我认为您正在做的是在同一图形上重新定义子图,从而导致重叠。
答案 1 :(得分:0)
您可以尝试plt.tight_layout()这将使您的身材变得扁平并使人物变得整齐。