[英]How to make stacked bar plot of dataframe values as percentage in matplotlib/pandas
[英]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.