调用 plt.subplot() 重置子图大小

Call to plt.subplot() resets subplot size

我是 matplotlib 的新手,所以请原谅我的菜鸟问题。这段代码很好用:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 2, 
                       gridspec_kw={
                           'width_ratios': [2, 1],
                           'height_ratios': [1, 2]})

ax[0][0].plot(range(5), range(5, 10))
ax[0][1].plot(range(5), range(10, 5, -1))
ax[1][0].plot(range(5), range(5, 10))
ax[1][1].plot(range(5), range(10, 5, -1))

但是,如果我调用 plt.subplot(221),用 gridspec_kw 定义的比率将丢失:子图在图的左上四分之一处重新绘制(第三个子图消失)。

你能解释一下发生了什么吗?我如何才能在不丢失比率的情况下获得对子图的引用?

谢谢!

通过调用 plt.subplot(221),您可以在 2x2 网格 (221) 的左上角位置创建一个新的子图。 如plt.subplot():

的注释中指定
Creating a subplot will delete any pre-existing subplot that overlaps 
with it beyond sharing a boundary

我不确定你的意思

how I can get a reference to the subplots

您可以通过 ax[i, j] 访问相应的坐标轴,就像在您的代码片段中一样。