Pandas は Matplotlib を使用して棒グラフに複数の列をプロット

Suraj Joshi 2023年1月30日
  1. 単一の棒グラフの各観測に対して複数の列を持つ棒グラフをプロットする
  2. 1つの棒グラフに複数のカラムの棒グラフを重ねる
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 内の各人の年齢、身長、体重を 1つの棒グラフにプロットする必要があります。

単一の棒グラフの各観測に対して複数の列を持つ棒グラフをプロットする

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 軸に沿って変化します。

1つの棒グラフに複数のカラムの棒グラフを重ねる

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