【Pythonグラフ入門】ヒストグラムと箱ひげ図でデータの分布を可視化しよう

データの「ばらつき」や「外れ値」「中央値」など、全体の特徴を視覚的に把握するには、ヒストグラムや箱ひげ図(ボックスプロット)が非常に有効です。

この記事では、matplotlibを使って、ヒストグラムと箱ひげ図を描く方法と、それぞれの使いどころをやさしく解説します。


📊 ヒストグラム(histogram)とは?

ヒストグラムは、データの頻度分布を表現するグラフです。
横軸に「区間(ビン)」、縦軸に「その区間に入るデータの個数」を表示します。


🔰 基本の描き方

import matplotlib.pyplot as plt

data = [60, 65, 70, 72, 75, 80, 85, 85, 90, 95, 100, 100, 105]

plt.hist(data, bins=5)
plt.title("点数の分布")
plt.xlabel("点数")
plt.ylabel("人数")
plt.grid(True)
plt.show()

💡 補足

  • bins=5:5つの区間に分けて頻度を集計
  • 区間の数を変えると、分布の見え方が変化します(適切なbinsの設定が大切)

🎨 ヒストグラムのカスタマイズ

plt.hist(data, bins=7, color="skyblue", edgecolor="black", alpha=0.7)
パラメータ説明
color棒の色
edgecolor枠線の色
alpha透明度(0〜1)

📦 箱ひげ図(箱型図/boxplot)とは?

箱ひげ図は、データの分布の要約(五数要約)を示すグラフです。

詳しくは過去に説明しているので以下を参照してください

データの広がりを一目で把握!箱ひげ図の読み方と使い方

要素意味
中央線中央値(50%点)
箱の上下第1四分位数(Q1)と第3四分位数(Q3)
ひげ範囲(外れ値を除く最大・最小)
外れ値(異常値)を示す

📌 基本の描き方

scores = [60, 65, 70, 72, 75, 80, 85, 85, 90, 95, 100, 100, 105]

plt.boxplot(scores)
plt.title("テスト点数の箱ひげ図")
plt.ylabel("点数")
plt.grid(True)
plt.show()

箱の中にある線が中央値、上下の箱が四分位範囲(IQR)を表しています。


🧠 ヒストグラムと箱ひげ図の使い分け

特徴ヒストグラム箱ひげ図
目的分布の形状を詳しく見る要約値・外れ値の把握
データ量多いほど効果的少なくてもOK
比較対象数1つが基本(複数重ねにくい)複数の箱を並べて比較しやすい

🧩 応用:複数グループの箱ひげ図を並べて比較

group_a = [60, 65, 70, 72, 75]
group_b = [85, 90, 95, 100, 105]

data = [group_a, group_b]

plt.boxplot(data, labels=["A組", "B組"])
plt.title("グループ別テスト点数")
plt.ylabel("点数")
plt.grid(True)
plt.show()

このように、箱ひげ図はカテゴリごとの比較にとても便利です。
ヒストグラムでは難しい「グループ間の中央値や分布範囲の比較」が一目でわかります。


✅ 今回のまとめ

学んだこと内容
ヒストグラムplt.hist():データの分布・山の形を見る
箱ひげ図plt.boxplot():中央値や外れ値を把握
使い分け分布形状 vs. 概要・比較が得意
応用グループ別に箱ひげ図を並べて比較する

📝 練習問題

  1. data = [55, 60, 65, 65, 70, 75, 80, 85, 85, 90, 95, 100, 105] を使って:
    • bins=6 のヒストグラムを描画
    • color="orange", alpha=0.5, edgecolor="gray" を指定して装飾してください
  2. 以下の2つのグループの点数を箱ひげ図で並べて比較してください:
    • グループA: [60, 65, 70, 72, 75]
    • グループB: [90, 92, 95, 97, 100]

次回は「pandasとの連携でグラフを自動化・高速化する方法」を解説します。
実データを扱う場面で役立つ内容なのでお楽しみに!

【Python実践可視化】pandas × matplotlib で効率よくグラフを描こう|初心者向けに徹底解説

これまでの記事

【Python初心者向け】matplotlibでグラフを描く基本|折れ線・棒グラフの描き方

【Python可視化】散布図とカスタマイズの基本|見やすいグラフを描くためのポイント

【Pythonグラフ作成】複数グラフを1つの画面に描く|subplotの使い方をやさしく解説

記事まとめ

【保存版】統計&Pythonデータ分析シリーズまとめ|基本〜中級をやさしく解説

コメント

タイトルとURLをコピーしました