我正在画两个不同的副图。一个是图像,另一个是散点图。你知道吗
fig = plt.figure(figsize=(16, 8))
# here I am drawing a greyscale image
image = img.imread(file_name)
fig.add_subplot(1, 2, 1).imshow(image, cmap=cm.Greys_r)
fig.tight_layout()
plt.axis('off')
# and here I am drawing a scatterplot based on this image.
X, Y = image.shape
x, y = np.nonzero(image)
fig.add_subplot(1, 2, 2).scatter(y - Y, -x)
fig.tight_layout()
问题是当我画它们的时候,它们有不同的高度。我怎样才能使高度相同?
查找设置高度matplotlib不会给出合适的结果。你知道吗
您需要将关键字
aspect='auto'
添加到imshow
调用中。所以应该是这样的:根据文件:
除了@jure关于设置
aspect
的回答(您可能还想尝试equal
而不是auto
,因为auto
不能保证两个图看起来相同),您还需要确保两个子图之间的xlim
和ylim
是相同的,因为它现在看起来像是x
和y
范围在imshow
中延伸得远远超出了散点图的范围。你知道吗另外,在变换y和x坐标时,需要将范围设置为
-X, 0
和-Y, 0
试试这个:
相关问题 更多 >
编程相关推荐