箱ひげ図を表示するPythonコード

データから箱ひげ図をPythonで出力してみよう。

Pythonコード

matplotlib.pyplotboxplot()関数を利用して, 箱ひげ図を出力する。

boxplot()の引数には, 箱ひげ図にするデータを入力する。

labelsで各箱ひげのラベルを付けることが可能。
vert=Falseを指定すると, 横方向の箱ひげ図を作成可能。(縦方向の場合は入力不要。)
showmeans=Trueを指定すると, 平均値を表示可能。meanpropsで平均値の表示形式を指定可能。不要である場合は入力不要。

入力例. class_A class_B class_C のデータから箱ひげ図を表示する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]

# 箱ひげ図
plt.boxplot(
    [class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
    vert=False,
    showmeans=True,  # 平均値を表示
    meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.xlabel("点数") # plt.ylabel("点数")
plt.grid(True)
plt.show()

縦向きの場合は, vertTrueにするか消去する。この場合, xlabely.lableが替わるので変更する。

import matplotlib.pyplot as plt
import japanize_matplotlib

# データ
class_A = [78, 82, 85, 90, 87, 92, 88, 84, 79, 81, 86, 91, 83, 85, 89, 87, 90, 88, 84, 82, 86, 88, 90, 92, 85, 87, 89, 91, 83, 84]
class_B = [65, 68, 70, 72, 74, 71, 69, 66, 75, 73, 72, 70, 68, 71, 69, 74, 73, 75, 72, 68, 70, 71, 69, 67, 74, 72, 73, 75, 68, 70]
class_C = [55, 60, 65, 50, 70, 75, 40, 85, 60, 55, 50, 80, 75, 45, 65, 70, 55, 60, 85, 40, 75, 70, 50, 55, 60, 65, 45, 80, 75, 50]

# 箱ひげ図
plt.boxplot(
    [class_A, class_B, class_C], labels=["クラスA", "クラスB", "クラスC"],
    showmeans=True,  # 平均値を表示
    meanprops={"marker":"x", "markerfacecolor":"black", "markeredgecolor":"black", "markersize":8}
)
plt.title("数学テスト点数の分布")
plt.ylabel("点数")
plt.grid(True)
plt.show()

matplotlibで日本語を利用する場合japanize_matplotlibを使う。必要であれば、次を行い事前にインストールしておく。

pip install japanize-matplotlib

コメントを残す