NumpyとMatplotlibで箱ひげ図を作成する

NumpyとMatplotlibで箱ひげ図を作成します。デフォルトだと箱の色が白黒なので、見やすいように色を指定して箱ひげ図を塗りつぶします。

後々Numpyを使いたいので、無理矢理Numpyを使っていますが、箱ひげ図を作成するだけならNumpyは必要ありません。リストのままでも箱ひげ図は作成できます。

今回は、コードと画像だけです。

ソースコード

import matplotlib.pyplot as plt
import numpy as np

from random import randint
random_data = [randint(150,170) for i in range(20)]     # ランダムデータ作成
random_data.append(185)                                 # 外れ値を追加

sample_data = np.array(random_data)     # リストをNumpyの配列に

plt.figure(figsize=(4,6), dpi=200)      # 描画サイズ
plt.title('Dattesar')                   # タイトル
plt.grid()                              # グリッドを表示

# 箱ひげ図作成
plt.boxplot(sample_data,            # データ指定
            labels = ['Sample'],    # ラベル
            #vert=False,            # 横向き表示(する場合はアンコメント)
            showmeans = True,       # 算術平均を表示
            patch_artist = True,    # 詳細設定を可能に
            widths = 0.5,           # boxの幅
            boxprops = dict(
                facecolor='pink',   # box塗りつぶし色
                color='red',        # box枠線の色
                alpha=0.6,          # box色の透過率
                linewidth=2         # box枠線の幅
                ),
            medianprops = dict(color='blue', linewidth=1),      # 中央値
            whiskerprops = dict(color='red', linewidth=1),      # ヒゲ線
            capprops = dict(color='red', linewidth=1),          # ヒゲ線の先端
            flierprops = dict(markeredgecolor='red', markeredgewidth=1)     # 外れ値
            )

# 画像を保存
plt.savefig('sample.png')

箱ひげ図

緑色の▲が算術平均です。