箱ひげ図を表示するPythonコード
データから箱ひげ図をPythonで出力してみよう。
Pythonコード
matplotlib.pyplotのboxplot()関数を利用して, 箱ひげ図を出力する。
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()
縦向きの場合は, vertをTrueにするか消去する。この場合, xlabelとy.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

