サバくん
データの可視化方法の1つ箱ひげ図の描画方法とパーセンタイル(5要約数)の算出方法について記述していこうと思います。
目次
箱ひげ図を描画する前にモジュールのインポートとサンプルデータを作成します。
# import modules
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# sample data
arr0 = np.random.normal(10, 3, 50) #平均10、分散3
arr1 = np.random.normal(10, 10, 50) #平均10、分散10
arr2 = np.random.normal(15, 10, 50) #平均15、分散10
箱ひげ図を描画するときはmatplotlib.pyplotのboxplotを使用します。早速使ってみましょう!
fig = plt.figure(figsize=(16,8))
plt.boxplot(arr0)
plt.show()
先ほど出力した5要約数と見比べて見ると数値と図が一致していることがわかると思います。
2次元の配列を引数に入れることで箱ひげ図を1度に出力することもできます。
fig = plt.figure(figsize=(16,8))
plt.boxplot((arr0,arr1,arr2),
labels=[f"arr{i}" for i in range(3)])# labelの追加
plt.grid() # 補助線の追加
plt.show()
箱ひげ図を90度回転させたい場合もあると思います。そのときはvert=Falseを引数に追加します。
fig = plt.figure(figsize=(16,8))
plt.boxplot((arr0,arr1,arr2),
labels=[f"arr{i}" for i in range(3)],
vert=False,
sym="*" # 外れ値の表示を変更(""にすると外れ値が表示されない)
)
plt.grid()
plt.xlabel("value")
plt.show()