如何在 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)
但我仍然得到相同的情节。如何修改代码,使标记出现在前面?
第一个代码在我 运行 在一个单独的虚拟环境(不是基本环境)中并启动一个新终端后对我自己起作用。
我有一个数据框 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)
但我仍然得到相同的情节。如何修改代码,使标记出现在前面?
第一个代码在我 运行 在一个单独的虚拟环境(不是基本环境)中并启动一个新终端后对我自己起作用。