簡體   English   中英

從 Pandas 數據框中繪制堆積條形圖

[英]Plot stacked bar chart from pandas data frame

我有數據框:

payout_df.head(10)

在此處輸入圖片說明

復制以下 excel 圖的最簡單、最智能和最快的方法是什么?

在此處輸入圖片說明

我嘗試了不同的方法,但無法讓一切都到位。

謝謝

如果您只想要一個堆積條形圖,那么一種方法是使用循環繪制數據pyplot.bar每一列並跟蹤累積總和,然后將其作為pyplot.barbottom參數pyplot.bar

import pandas as pd
import matplotlib.pyplot as plt

# If it's not already a datetime
payout_df['payout'] = pd.to_datetime(payout_df.payout)

cumval=0
fig = plt.figure(figsize=(12,8))
for col in payout_df.columns[~payout_df.columns.isin(['payout'])]:
    plt.bar(payout_df.payout, payout_df[col], bottom=cumval, label=col)
    cumval = cumval+payout_df[col]

_ = plt.xticks(rotation=30)
_ = plt.legend(fontsize=18)

在此處輸入圖片說明

除了缺乏數據,我認為下面的代碼會產生所需的圖形

import pandas as pd
import matplotlib.pyplot as plt

df.payout = pd.to_datetime(df.payout)

grouped = df.groupby(pd.Grouper(key='payout', freq='M')).sum()
grouped.plot(x=grouped.index.year, kind='bar', stacked=True)

plt.show()

我不知道如何重現這種花哨的 x 軸樣式。 此外,您的payout列必須是日期時間,否則pd.Grouper將不起作用( 可用頻率)。

暫無
暫無

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

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