Pandas 在 Matplotlib 柱狀圖上繪製多列圖

Suraj Joshi 2023年1月30日 2020年11月24日
  1. 在單條形圖中為每個觀測值繪製多列的條形圖
  2. 疊加單條形圖中每個觀測值的多列條形圖
Pandas 在 Matplotlib 柱狀圖上繪製多列圖

在本教程中,我們將介紹如何使用 DataFrame 物件的 plot() 方法在柱狀圖上繪製多列。

import pandas as pd 

data=[["Rudra",23,156,70],
      ["Nayan",20,136,60],
      ["Alok",15,100,35],
      ["Prince",30,150,85]
     ]

df=pd.DataFrame(data,columns=["Name","Age","Height(cm)","Weight(kg)"])
print(df)

輸出:

     Name  Age  Height(cm)  Weight(kg)
0   Rudra   23         156          70
1   Nayan   20         136          60
2    Alok   15         100          35
3  Prince   30         150          85

我們將使用 DataFrame df 來構建條形圖。我們需要在一個條形圖上繪製 DataFrame 中每個人的年齡、身高和體重。

在單條形圖中為每個觀測值繪製多列的條形圖

import pandas as pd 
import matplotlib.pyplot as plt 

data=[["Rudra",23,156,70],
      ["Nayan",20,136,60],
      ["Alok",15,100,35],
      ["Prince",30,150,85]
     ]

df=pd.DataFrame(data,columns=["Name","Age","Height(cm)","Weight(kg)"])
df.plot(x="Name", y=["Age", "Height(cm)", "Weight(kg)"], kind="bar",figsize=(9,8))
plt.show()

輸出:

繪製單條形圖中每個觀測值的多列條形圖

它使用 df 物件的 plot() 方法為資料框 df 中的每個人生成 AgeHeightWeight 的條形圖。我們在方法中傳遞一個要在柱狀圖中繪製的所有列的列表作為 y 引數,kind="bar"將為 df 生成一個柱狀圖。x 引數將沿 X 軸變化。

疊加單條形圖中每個觀測值的多列條形圖

import pandas as pd
import matplotlib.pyplot as plt

employees=["Rudra","Alok","Prince","Nayan","Reman"]
earnings={
    "January":[10,20,15,18,14],
    "February":[20,13,10,18,15],
    "March":[20,20,10,15,18],
}

df=pd.DataFrame(earnings,index=employees)

df.plot(kind="bar",stacked=True,figsize=(10,8))
plt.legend(loc="lower left",bbox_to_anchor=(0.8,1.0))
plt.show()

輸出:

單一柱狀圖中每個觀測值的多列疊加柱狀圖

它通過將 DataFrame 中每個索引的一列值疊加在另一列上來顯示條形圖。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn