本文へスキップ
BecomeCoder

Pythonデータ分析コース · 第5章 matplotlib ― データを可視化する · レッスン18

棒グラフ ― bar

ブラウザで完結

導入

棒グラフは、カテゴリ間の大小の比較が得意です。商品ごとの売上、地域ごとの人口などに向いています。

説明

plt.bar(ラベル, 値) で棒グラフになります。ラベルには文字列のリストを渡せます。

import matplotlib.pyplot as plt

products = ["Apple", "Orange", "Grape", "Peach"]
sales = [300, 180, 420, 260]

plt.bar(products, sales, color="teal")
plt.title("Sales by Product")
plt.ylabel("sales")
plt.show()

pandas の集計結果は、そのまま棒グラフに渡せます。groupby の結果を可視化する定番パターンです。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    "team": ["A", "B", "A", "B", "C"],
    "score": [80, 60, 90, 70, 100],
})
avg = df.groupby("team")["score"].mean()
print(avg)

plt.bar(avg.index, avg.values, color="orange")
plt.title("Average Score by Team")
plt.show()

avg.index(チーム名)と avg.values(平均点)を bar に渡すだけ。集計と可視化がつながりました。

やってみよう

plt.barplt.barh に変えると、横向きの棒グラフになります。項目名が長いときに便利です。

演習

{"Mon": 120, "Tue": 200, "Wed": 150} の売上を棒グラフにしてください(キーをラベル、値を高さに)。タイトルは "weekly"

ヒント1を見る

plt.bar(["Mon","Tue","Wed"], [120,200,150])plt.title("weekly")plt.show()

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、numpy・pandas・matplotlib が使える本物のPython(Pyodide)で出力とグラフが表示されます。初回だけ読み込みに少し時間がかかります。本文の例をそのまま試したり、書き換えたりしてみましょう(グラフ内の文字は日本語だと表示が崩れるため英字で書きます)。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。