我得到了两个numpy数组,我想把它们画在彼此的上面。它工作了,但是上面的图像被缩小了,所以轴不再匹配了。我可以通过设置Figsize为(8,8)来“修复”它,但是在图下面有一个很大的空白。
所以我的代码:
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
plt.subplots_adjust(hspace=0.2)
ax1.imshow(np_source, cmap='binary')
ax1.set_ylabel('Segmentiertes Bild')
ax1.xaxis.set_major_locator(plt.MultipleLocator(1))
ax1.yaxis.set_major_locator(plt.MultipleLocator(1))
ax2.imshow(achse, cmap='binary')
ax2.set_ylabel('Achse')
ax2.xaxis.set_major_locator(plt.MultipleLocator(1))
ax2.yaxis.set_major_locator(plt.MultipleLocator(1))
ax1.grid(color='dimgrey', which="both", linewidth=1)
ax2.grid(color='dimgrey', which="both", linewidth=1)
ax1.set_anchor('NW')
ax2.set_anchor('NW')
plt.show()
这是它产生的图像:
我如何对齐它们并删除底部白色?
1条答案
按热度按时间eagi6jfj1#
您遇到这些问题是因为
imshow
默认为固定纵横轴,这给布局增加了额外的褶皱。最好的办法是使子图的垂直纵横比与数据大小一致。如果您有现代Matplotlib,也可以使用
layout='compressed'
将轴垂直绘制在一起:请注意,我使数字变灰,以便您可以看到它的范围。
有关https://matplotlib.org/stable/tutorials/intermediate/constrainedlayout_guide.html#grids-of-fixed-aspect-ratio-axes-compressed-layout详细信息,请访问www.example.com。