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

时间:2020-06-28 14:22:27

标签: python matplotlib subplot

我是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所定义的比率将丢失:子图将在图的左上四分之一处重画(第三个子图将消失)。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

Creating a subplot will delete any pre-existing subplot that overlaps 
with it beyond sharing a boundary

我不确定您的确切意思

我如何获得对子图的引用

如代码段所示,您可以通过ax[i, j]访问相应的轴。