Matplotlib 强制带有和不带有轴标签的大小相等

den*_*ger 7 python matplotlib

我相当确定这个问题之前已经在 Stackoverflow 上被问过并得到了回答,但我找不到正确的搜索词。

我的情况如下:我在 Matplotlib 中生成单个图形,然后在 LaTeX 图形中排列多个图(为了示例,假设2x2LaTeX 中的子图形网格,带有索引

a)   b)
c)   d)
Run Code Online (Sandbox Code Playgroud)

为了“视觉美观”,我只想描述 a) 和 c) 中的 y 轴刻度,仅描述 c) 和 d) 中的 x 轴刻度。虽然禁用各个子图上的轴刻度非常容易,但不幸的是,它会导致保存的图具有不同的图像大小(如果不存在轴标签,绘图区域会占用更多图像),从而导致布局混乱在我的 LaTeX 图中。

有没有什么方法可以根据图 c) 的大小(具有两个轴刻度)来强制这些图的具体大小?

我目前的尝试是使用plt.savefig([...], bbox_inches='tight', pad_inches=x),但没有成功。我也愿意使用plt.subplot(),但我更愿意将它们保留为单独的图,以便以后的演示。

作为参考并为您提供一些可使用的 MCVE,想象一下子图 a) 的图(无 x 轴标签和刻度)如下所示:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.xticks([1,2,3,4], [])  # Disable x-axis ticks
plt.xlabel("")  # Disable x-axis label
Run Code Online (Sandbox Code Playgroud)