如何在 Python 中使用 matplotlib 将第二个子图置于第一个子图之上?

How can I bring second sub plot on top of first sub plot using matplotlib in Python?

我有一个数据框 df 如下所示:

    Min Average Max
Score   30  55  80

df.to_dict如下:

{'Min': {'Score': 30}, 'Average': {'Score': 55}, 'Max': {'Score': 80}}

我想绘制一个从最小值到最大值的条形图,并在条形中以标记的形式添加平均值。 我写了下面的代码:

fig, ax = plt.subplots()

df["Max"].plot(kind = "bar",
              bottom = df["Min"], ax = ax,
              width = 0.1)

ax.scatter(x = 0,
           y = df["Average"],
           marker = "_",
           s = 10000,
           color = "red")

plt.ylim(0, 120)

这让我返回了如图所示的情节:

正如观察到的那样,作为标记的散点图或水平红线被蓝色条隐藏了。我想把它放在前面。

我把关于散点图的代码行放在条形图之前,如下所示:

fig, ax = plt.subplots()

plt.scatter(x = 0,
           y = df["Average"],
           marker = "_",
           s = 10000,
           color = "red")

df["Max"].plot(kind = "bar",
              bottom = df["Min"], ax = ax,
              width = 0.1)

plt.ylim(0, 120)

但我仍然得到相同的情节。如何修改代码,使标记出现在前面?

第一个代码在我 运行 在一个单独的虚拟环境(不是基本环境)中并启动一个新终端后对我自己起作用。