Matplotlib Boxplot Python

Suraj Joshi 9 Januar 2021
Matplotlib Boxplot Python

Dieses Tutorial erklärt, wie man mit der Funktion matplotlib.pyplot.boxplot() in Python einen Boxplot erstellt.

Der Boxplot hilft uns, Einblicke in die Daten zu gewinnen, indem er Informationen über die Position von Minimum, 1. Quartil, Median, 3. Quartil und dem Maximum der Daten liefert.

boxplot in Python 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()

Ausgabe:

Boxplot in Python mit Matplotlib

Es wird ein Boxplot aus den gegebenen Daten x gezeichnet. In dem Boxplot erstreckt sich die Box von Q1 bis Q3; und die horizontale Linie innerhalb der Box stellt den Median der Daten dar. Die Whisker im Boxplot erstrecken sich von Q3 bis zum Maximum Wert in den Daten und vom Minimum Wert der Daten bis Q1 der Daten.

Der Minimalwert der Daten wird durch den Wert von Q1-1.5(Q3-Q1) bestimmt, während der Maximalwert der Daten durch die Formel Q3+1.5(Q3-Q1) bestimmt wird.

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()

Ausgabe:

Boxplot in Python mit Matplotlib mit Ausreißern

Es wird der Boxplot der gegebenen Daten x geplottet. Wir können auch zwei Ausreißer am oberen Rand des Boxplots erkennen, die durch Kreise im Plot dargestellt werden.

Ein Datenpunkt wird als Ausreißer gezeichnet, wenn entweder sein Wert kleiner als Q1-1.5(Q3-Q1) oder größer als Q3+ 1.5(Q3-Q1) ist.

Wenn wir ein 2D-Array als Argument an die Funktion matplotlib.pyplot.boxplot() übergeben, macht die Funktion boxplot() für jedes Array oder die Liste im 2D-Array einen 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()

Ausgabe:

Mehrere Boxplots in Python mit Matplotlib

Sie erzeugt boxplot für jedes NumPy-Array innerhalb der Liste data_2d. Daher erhalten wir 4 Boxplots in einer einzigen Abbildung mit gemeinsamen Achsen.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn