Matplotlib 中級

箱ひげ図とバイオリン図

ax.boxplot と ax.violinplot で複数グループのばらつきを比べます。

はじめに

平均値の棒グラフでは、値がどれだけばらついているかがわかりません。箱ひげ図は中央値、データの中央の半分 (箱)、通常の範囲 (ひげ)、外れ値 (点) を示します。バイオリン図は各グループの分布の形全体を示します。

scores のリスト1つが箱1つになります。箱の中の線が中央値で、箱は点数の中央 50% を、ひげは外れ値ではない最も遠い値までを示します。クラス B の箱はずっと小さく、点数が近くに集まっていることがわかります。set_xticks は x = 1、2、3 にある箱に名前を付けます。ax.violinplot(scores) にすると同じグループがバイオリン図になります。

インタラクティブ ビジュアライザー

箱ひげ図とバイオリン図を切り替え、点数を1つずつ点で表示し、クラス C のばらつきを変えてみましょう。

実行できる Matplotlib の例

Matplotlib
コードを実行 →
main.py
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(5)
scores = [rng.normal(70, 8, 80), rng.normal(75, 4, 80), rng.normal(65, 12, 80)]

fig, ax = plt.subplots(figsize=(7, 4))
ax.boxplot(scores)
ax.set_xticks([1, 2, 3], ["Class A", "Class B", "Class C"])
ax.set_ylabel("Score")
ax.set_title("Test scores by class")
plt.show()
この例の実行ボタンを作成 このコードが描くグラフ
箱ひげ図とバイオリン図