2020年5月16日土曜日

箱ひげ図

講義で使える統計素材」シリーズ. 今回は,箱ひげ図.生データを数値直線上にプロットして様々な代表値を計算し箱ひげ図を描く演習で使用できる.

In [1]:
import numpy as np
import matplotlib.pyplot as plt
In [2]:
# テストデータ
x=[2.1, 3.3, 10.4, 4.4, 3.1, 2.8, 4.3, 5.2, 5.9, 9.2, 7.2]

代表値

In [3]:
# 代表値
print(np.average(x))
print(np.median(x))
print(np.max(x))
print(np.min(x))
q75, q25 = np.percentile(x, [75 ,25])
print(q25)
print(q75)
5.263636363636365
4.4
10.4
2.1
3.2
6.550000000000001

箱ひげ図

In [4]:
# boxplot
fig=plt.figure(figsize=(5,2.5))
ax=fig.add_subplot(111)
ax.scatter(x,np.ones(len(x)))
ax.boxplot(x,
           vert=False,  # 横向き
           patch_artist=True,  # box内の塗りつぶし
           widths=0.5,  # boxの幅
           boxprops=dict(facecolor='#1E90FF80',  # 塗りつぶし色
                         color='black', linewidth=1),  # 枠線
           medianprops=dict(color='black', linewidth=1),  # 中央値の線
           whiskerprops=dict(color='black', linewidth=1),  # ヒゲの線
           capprops=dict(color='black', linewidth=1),  # ヒゲの先端
           flierprops=dict(markeredgecolor='black', markeredgewidth=1)  # 外れ値
           )

plt.savefig('plot_out.svg')