簡體   English   中英

Python-從Pandas數據創建單個水平堆積條形圖?

[英]Python - Create a single horizontal stacked bar chart from Pandas data?

我希望創建一個水平堆積條形圖,以替代餅圖以顯示百分比。

我非常確定plot.barh會完成這項工作(它在我擁有的另一段代碼中創建了多個堆疊的條形圖)。 但是在這里,它不會堆積條形圖。 我如何解決它?

import pandas as pd
import matplotlib.pyplot as plt

data=pd.DataFrame(data={"R1":["Yes","Yes","Yes","No","No"]})
freq = data["R1"].value_counts(normalize=True)*100
fig,ax = plt.subplots()
freq.plot.barh(ax=ax,stacked=True)

在此處輸入圖片說明

堆疊意味着將一個數據幀的多個序列彼此疊加,這樣它們的值就會累加。
您只有一個序列,帶有兩個值,因此以一個條形圖進行繪制。

您可以從系列中制作一個DataFrame,對其進行轉換,使YesNo是兩列,每列一個值,然后按照嘗試的方式繪制它:

freq.to_frame().T.plot.barh(stacked=True)

在此處輸入圖片說明


檢查差異:

freq

# Yes    60.0
# No     40.0
# Name: R1, dtype: float64

freq.to_frame().T

#      Yes    No
# R1  60.0  40.0

暫無
暫無

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

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