簡體   English   中英

子圖中的堆疊條使用具有兩列以上的 df

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

我的df包含三列每月數據。 是文件。
我想使用堆疊條在子圖中將每個月的所有三列相互疊加。 這是我嘗試過的許多代碼之一:

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放在底部,然后LsLc在頂部。 輸出:

在此處輸入圖片說明

這個解決方法提供了我需要的東西。

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解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM