Python Matplotlib 箱ひげ図

Suraj Joshi 2021年3月5日
Python Matplotlib 箱ひげ図

このチュートリアルでは、Python の matplotlib.pyplot.boxplot() 関数を使って箱ひげ図を作成する方法を説明します。

箱ひげ図は、データの 最小値 第 1 四分位 中央値 第 3 四分位 最大値 の位置に関する情報を与えることで、データに関する洞察を得るのに役立ちます。

Python の boxplot (Matplotlib) での箱ひげ図の使い方

import matplotlib.pyplot as plt

x = [4, 5, 6, 8, 9, 10, 10, 11, 11, 12, 13, 14, 15, 15, 15, 17, 18, 19, 22, 23, 25]

plt.boxplot(x)
plt.title("Boxplot Using Matplotlib")
plt.show()

出力:

Matplotlib を使った Python の箱ひげ図

与えられたデータ x から箱ひげ図を作成します。箱ひげ図では、ボックスは Q1 から Q3 まで伸び、ボックス内の水平線はデータの中央値を表します。箱ひげ図のウィスカは、Q3 からデータの最大値まで、データの最小値からデータの Q1 まで伸びる。

データの最小値は Q1-1.5(Q3-Q1) の値で決まり、最大値は Q3+1.5(Q3-Q1) の式で決まる。

import matplotlib.pyplot as plt

x = [
    1,
    4,
    5,
    6,
    8,
    9,
    10,
    10,
    11,
    11,
    12,
    12,
    13,
    14,
    15,
    15,
    15,
    17,
    18,
    18,
    19,
    22,
    23,
    25,
    30,
    33,
    35,
]

plt.boxplot(x)
plt.title("Boxplot Using Matplotlib")
plt.show()

出力:

Matplotlib を用いた Python の Boxplot(アウトライア付き

これは与えられたデータ x の箱ひげ図をプロットします。また、箱ひげ図の上部に丸で示された 2つの外れ値があることに気づくだろう。

データ点の値が Q1-1.5(Q3-Q1) より小さいか、あるいは Q3+ 1.5(Q3-Q1) より大きい場合、外れ値としてプロットされます。

関数 matplotlib.pyplot.boxplot() に 2 次元配列を引数に渡すと、関数 boxplot() は 2 次元配列内の各配列またはリストに対して boxplot を作成します。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(100)

data_a = np.random.randint(2, 15, size=15)
data_b = np.random.randint(5, 18, size=20)
data_c = np.random.randint(2, 20, size=30)
data_d = np.random.randint(1, 30, size=40)

data_2d = [data_a, data_b, data_c, data_d]

plt.boxplot(data_2d)
plt.title("Boxplot Using Matplotlib")
plt.show()

出力:

Python による Matplotlib を用いた複数の箱ひげ図

リスト data_2d の中の NumPy 配列ごとに boxplot を作成します。これにより、共通の軸を持つ 4つの箱ひげ図が 1つの図の中で得られることになります。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn