我需要将灰度图像及其直方图添加到图形中。 两个子图应该是相同的大小,但直方图显示为图像的两倍高。如何使两个子图具有相同的高度?
这是我的代码:
import numpy as np
from skimage import io
import matplotlib.pyplot as plt
L = 256
img = io.imread('https://i.stack.imgur.com/ywPGr.png')
edges = np.arange(L+1)
hist, _ = np.histogram(img, bins=edges)
centers = edges[:-1]
fig, [ax1, ax2] = plt.subplots(1, 2)
ax1.imshow(img, cmap=plt.cm.gray)
ax1.axis('off')
ax2.fill_between(centers, hist)
fig.tight_layout()
plt.show(fig)
我已经尝试了this similar question接受的答案中提出的解决方案,但这些解决方案都不适用于我。
在图像上使用自动宽高比会改变其宽高比(这是不可接受的):
ax1.imshow(img, cmap=plt.cm.gray, aspect='auto')
添加这两行不会产生所需的结果:
asp = np.diff(ax2.get_xlim())[0] / np.diff(ax2.get_ylim())[0]
ax2.set_aspect(asp)