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

Suraj Joshi 2023年1月30日
  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 中每個索引的一列值疊加在另一列上來顯示條形圖。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn