matp中的子批次重叠

2024-09-30 20:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是在每一行中显示3个图像(列)作为子图,这些图像被显示,但是相互重叠。我尝试过手动调整它们,但是我的子批次中的行数取决于一个“n”值,因此手动调整每个n是不可能的。我试过了”图紧密布置图()”但是没有用。在

有什么办法克服这个问题吗??在

    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()

Tags: in图像addforfigplt手动ax
2条回答

从你的描述中看不太清楚。请提供minimal an verifiable example。但是,从代码来看,您使用i变量创建了不同数量的行,我认为这不是有意的。从docs我们可以看到子批次是如何工作的

enter image description here

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()

因此,我们预先定义列和行的数量,然后索引到我们要使用的正确子批。我认为你所做的是重新定义同一图形上的子图,导致重叠。在

你可以试试紧凑型布局()这会使你的身材变平,使身材整齐。在

相关问题 更多 >