簡體   English   中英

繪制堆積百分比條形圖matplotlib

[英]plot stacked percentage barchart matplotlib

假設我有以下具有兩列的數據框:label:可以為-1、0或1。years_of_expereicen:可以為0、1、2、3、4、5、6、7、8、9

label   SSP_years_of_experience
22640   -1.0    5.0
181487  1.0 3.0
327672  0.0 9.0
254919  0.0 6.0
136942  1.0 10.0

我的目標是使用此數據框創建百分比堆疊的條形圖,其中x軸是多年的經驗,而條形圖是不同的顏色,每種顏色都包含一年的經驗值。 換句話說,我們在x軸上有10個可能的值,然后對於對應於每個標簽的不同顏色的每個值有3條。 y軸應以百分比為單位。

我想知道如何在R(使用ggplot)中執行此操作,但是我是matplotlib的新手,而python是新手。

獎勵點是我可以將兩列作為變量傳遞的地方(例如x,y)。 MOre獎勵積分,用於在圖表中以文本形式顯示每個條形圖中的觀察數。

如果數據框是pandas ,請嘗試:

exp_name = 'year_of_experience'
label_name = 'label'
new_df = (df.groupby(exp_name)[label_name]
            .value_counts(normalize=True)
            .sort_index()
            .unstack()
         )

new_df.plot.bar(stacked=True)

玩具數據框:

np.random.seed(0)
df = pd.DataFrame({'label': np.random.choice([-1,0,1], size=1000, replace=True),
                   'year_of_experience': np.random.randint(0,10, 1000)})

輸出:

在此處輸入圖片說明

暫無
暫無

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

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