簡體   English   中英

如何 plot 使用 matplotlib 或 ZD50F43649ZD63 的 2 個分類列的 plot 條

[英]How to plot a bar plot of 2 categorical columns using matplotlib or seaborn

這可能是一項簡單的任務,但我是在 python 中繪圖的新手,並且正在努力將邏輯轉換為代碼。 我有 2 列,如下所示。 0 表示未流失,1 表示已流失。 性別是 object 列,流失是類別列

gender|churned
--------------
male   |0
male   |1
female |0
female |1
female |1
male   |1

我只想要一個堆疊條形圖(如果這不是正確的圖表選擇,請糾正我)在 x 軸(流失列)上具有 0 和 1,對於這兩個類別中的每一個,我想要一個具有 2 種不同顏色的堆疊條形圖每個性別顯示 0 歲以下的男性和女性總數(未流失)和 1 歲以下的男性和女性總數(流失)。

我試過了:

df.Churn.value_counts().plot(kind='bar') 

它給了我每個 0 和 1 的總數,但我也需要將它除以性別。

希望我說得通

您可以將其表:

import pandas as pd
df = pd.DataFrame({'gender':['male','male','female','female','female','male'],
                'churned':[0,1,0,1,1,1]})
pd.crosstab(df['churned'],df['gender']).plot(kind="bar",stacked=True)

在此處輸入圖像描述

如果你想要一個交互式版本,那么你可以使用 hvplot:

import pandas as pd
import hvplot.pandas #noqa
# 1. CREATE DF:
churn = pd.DataFrame({"gender":["male","male","female","female","female","male"],
                     "churned":[0,1,0,1,1,1]})
churn

Out[2]: 
   gender  churned
0    male        0
1    male        1
2  female        0
3  female        1
4  female        1
5    male        1
# 2. GROUP THE DATA BY "churned" THEN "gender":
plot_me = churn.groupby(["churned","gender"])[["gender"]].count().rename(columns={"gender":"count"})
plot_me

Out[3]: 
                count
churned gender       
0       female      1
        male        1
1       female      2
        male        2
# 3. PLOT:
plot_me.hvplot.bar(stacked=True,color=["maroon","teal"],line_width=3,
                   line_color="black",height=350,width=500)

Out[4]: 

在此處輸入圖像描述

暫無
暫無

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

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