使用具有两列以上的 df 的子图中的堆积条

Stacked-bar in sub-plot using df with more than two columns

我的 df 包含三列每月数据。 Here 是文件。
我想使用堆叠条在子图中将每个月的所有三列绘制在彼此之上。 这是我尝试过的众多代码之一:

df.plot(kind='bar', stacked=True, bottom = df['Yf'])

它创建了一个条形奇怪地悬挂的图(见下图)。

我想把它放在一个子图中,所有的列都堆在一起。因此,每个月的最高点是相应月份三个参数的总和。我也想自由安排哪个参数应该放在底部、中间和顶部。
我想要这样的东西。
上网查了,还没解决。

删除 bottom=df['Yf'],因为这会告诉 plt 将条形图放置在 df['Yf'] 的高度。所以只是:

df.plot(kind='bar', stacked=True)

你可以选择顺序(bottom, middle, top),像这样:

orders = ['Yf', 'Ls', 'Lc']
df[orders].plot(kind='bar', stacked=True)

会将 Yf 放在底部,然后 Ls,然后 Lc 放在顶部。输出:

这个变通办法满足了我的需要。

ax1.bar(df.index, df['Yf'],  alpha=0.7, color='green')
ax1.bar(df.index, df['Lc'],  bottom=df['Yf'], alpha=0.7, color='red')
ax1.bar(df.index, df['Ls'],  bottom=df['Yf']+df['Lc'], alpha=0.7, color='c')

以为只有一行 ax1.bar 解决方案。