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

标签 python matplotlib matplotlib-gridspec

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

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')

这是结果图:

Two image subplots, the first is slightly shorter in height

请注意,尽管像素高度相同,并且在网格规范中跨越相同的行数,但第一张图像在垂直方向上还是稍微小一些。

我该如何解决这个问题?我对 GridSpec 以外的解决方案持开放态度。

最佳答案

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')

输出:

enter image description here

关于python - 为什么这些图像 gridspec 子图的高度略有不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69410906/

相关文章:

python - 如何将 Cartopy 与 gridspec 结合使用

python - 使用 gridspec 添加数字

python - matplotlib hist 同时忽略特定的无数据值

python - 如何使用 for 循环将 gridspec 与 nrows 和 ncols 分组

python - super() 和@staticmethod 交互

python - 从测试文件夹导入 flask 模块失败

python - 将 pandas 日期时间列向下舍入到前一分钟

python - 使用 CfnParameter 时,ID 组件可能不包含未解析的 token : ${Token[TOKEN. 199]}-ec2

python - matplotlib 中 3D 散点图上方的网格线

python - 如何在 Python 中将图像正确显示为具有步进转换的 3D 图?