matplotlib 为什么这些图像gridspec子图的高度略有不同?

nle07wnf  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(127)

我想并排绘制几张图像。这些图像都具有相同的高度,但宽度不同。我希望它们都整齐地排列,这样图形看起来很专业。相反,较窄的图像占用的垂直空间略少。下面是一个最小的工作示例:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

plt.figure(figsize=(5,5))
gridspec.GridSpec(5, 5)

# plot the narrow plot
plt.subplot2grid((5, 5), (0,0), colspan=2, rowspan=5)
plt.imshow(np.random.normal(size=(5,2)))
plt.axis('off')

# plot the wide plot
plt.subplot2grid((5, 5), (0,2), colspan=3, rowspan=5)
plt.imshow(np.random.normal(size=(5,3)))
plt.axis('off')

这是结果图:

请注意,尽管第一个图像具有相同的像素高度,并且在gridspec中跨越相同数量的行,但它在垂直方向上的尺寸总是稍微小一些。
我如何解决这个问题?我愿意接受GridSpec以外的解决方案。

3pvhb19x

3pvhb19x1#

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig, axs = plt.subplots(1,2,figsize=(5,5), gridspec_kw={'width_ratios': [2, 3]})
axs[0].imshow(np.random.normal(size=(5,2)))
axs[1].imshow(np.random.normal(size=(5,3)))
axs[0].axis('off')
axs[1].axis('off')

输出:

相关问题