データの「ばらつき」や「外れ値」「中央値」など、全体の特徴を視覚的に把握するには、ヒストグラムや箱ひげ図(ボックスプロット)が非常に有効です。
この記事では、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. 概要・比較が得意 |
| 応用 | グループ別に箱ひげ図を並べて比較する |
📝 練習問題
data = [55, 60, 65, 65, 70, 75, 80, 85, 85, 90, 95, 100, 105]を使って:bins=6のヒストグラムを描画color="orange",alpha=0.5,edgecolor="gray"を指定して装飾してください
- 以下の2つのグループの点数を箱ひげ図で並べて比較してください:
- グループA:
[60, 65, 70, 72, 75] - グループB:
[90, 92, 95, 97, 100]
- グループA:
次回は「pandasとの連携でグラフを自動化・高速化する方法」を解説します。
実データを扱う場面で役立つ内容なのでお楽しみに!
【Python実践可視化】pandas × matplotlib で効率よくグラフを描こう|初心者向けに徹底解説
これまでの記事
【Python初心者向け】matplotlibでグラフを描く基本|折れ線・棒グラフの描き方
【Python可視化】散布図とカスタマイズの基本|見やすいグラフを描くためのポイント

コメント