Matplotlib 补丁 - 将矩形与图形框齐平

Matplotlib patches - position rectangle flush with figure frame

我创建了几个矩形来添加到图形中,如下所示:

rectangle1 = patches.Rectangle((-.5,.3), 1, .9, ec=None, fc=(0,0,0,.7), zorder=0, clip_on=False, in_layout=False)

我希望这个矩形与左侧垂直框架 spine/edge(它是)以及顶部和底部框架边缘(它不是)齐平。相反,当我将矩形的大小增加到第一个或最后一个 ytick 之外时,整个图形框架的垂直尺寸会增加,就像有某种不可见的边距阻止矩形到达顶部和底部边缘。我认为将 clip_onin_layout 都设置为 False 会解决这个问题,但没有这样的运气。

我错过了什么?谢谢

已添加图片:在左侧的子图中,如果我将矩形的大小增加到超过最上面的 ytick,图形框会发生什么情况。在右侧的子图中,矩形在开始扩展图框之前的最大尺寸。

您需要使用 set_ylim 来设置 y 轴的范围。

应用于轴对象。如果您的代码中没有轴对象,您可以使用 get_axes 找到它们; get_axes figure 的方法之一。

因此,为图形上的所有轴设置 y 限制的代码可能类似于

for ax_ in gcf().get_axes():
  ax_.set_ylim(0, 1.2)