【发布时间】:2017-07-29 06:55:14
【问题描述】:
受this question 的启发,我一直在尝试绘制没有间隙的图像。
在我的玩具示例中,我想将四张图片放在两行中。它们有不同的形状:不同的行数,相同的列数。尽管存在差异,但它们应该无间隙地放在一个图形中,如下图所示:
但是,当我尝试将它们组合在一起时,设置 plt.subplots_adjust(wspace=0, hspace=0) 并不能解决问题,因为图像具有不同的形状。
代码如下:
from numpy.random import rand
import matplotlib.pyplot as plt
test_data = [[rand(10,10), rand(10,10)],[rand(5,10), rand(5,10)]]
f, axarr = plt.subplots(2,2)
for i in range(2):
for j in range(2):
axarr[i, j].imshow(test_data[i][j])
plt.tight_layout()
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()
我尝试过使用set_aspect 和equal,但没有运气。
有谁知道如何消除这些差距?
【问题讨论】:
-
您要保留轴刺和刻度标签吗?生成的图像应该紧贴图形边界还是应该留出一些空间?这种差距会是任意的吗?
-
不,我不想要轴刺和刻度标签,因为我正在显示图像。我会用
.axis('off')删除它们。理想情况下,生成的图像应该紧贴图形边界,但我不介意一个简单的解决方案是否还有一些空间。我不想要任何差距,所以差距不是任意的,它总是 0(如果我正确理解了你的问题)。图像大小可能会发生变化,但我们可以假设其中一个维度始终相同。
标签: python matplotlib imshow