logo

Boxplot in Python mit Matplotlib

Was ist Boxplot?

Ein Boxplot ist eine Möglichkeit, die Verteilung der Daten mithilfe einer Box und einiger vertikaler Linien zu visualisieren. Es ist als Whisker-Plot bekannt. Die Daten können auf fünf Schlüsselbereiche verteilt werden, die wie folgt lauten:

if else-Anweisung Java
    Minimum: Q1-1,5*IQR1. Quartil(Q1): 25. PerzentilMedian:50. Perzentil3. Viertel(Q3): 75. PerzentilMaximal: Q3+1,5*IQR

Hier repräsentiert IQR das InterQuartilbereich die beim ersten Quartil (Q1) beginnt und beim dritten Quartil (Q3) endet.

Boxplot-Visualisierung

Boxplot in Python mit Matplotlib

Im Boxplot werden die Punkte, die außerhalb des Bereichs liegen, als Ausreißer bezeichnet. Wir können das Boxplot der Daten erstellen, um Folgendes zu bestimmen:

  • Die Anzahl der Ausreißer in einem Datensatz
  • Sind die Daten verzerrt oder nicht?
  • Der Bereich der Daten

Der Bereich der Daten vom Minimum bis zum Maximum wird als Whisker-Grenze bezeichnet. In Python verwenden wir das Pyplot-Modul des Matplotlib-Moduls, das über eine integrierte Funktion namens boxplot() verfügt, die den Boxplot eines beliebigen Datensatzes erstellen kann.

Syntax:

 matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none) 

In der Funktion boxplot() verfügen wir über viele Attribute, die verwendet werden können, um einen attraktiveren und beeindruckenderen Boxplot des Datensatzes zu erstellen.

    Daten: Die Daten sollten ein Array oder eine Folge von Arrays sein, die dargestellt werden.Einkerbung: Dieser Parameter akzeptiert nur boolesche Werte, entweder wahr oder falsch.Grün: Dieses Attribut akzeptiert einen booleschen Wert. Wenn es auf „true“ gesetzt ist, ist das Diagramm vertikal. Andernfalls liegt es horizontal.Position: Es akzeptiert das Array von Ganzzahlen, das die Position der Box definiert.Breiten: Es akzeptiert das Array von Ganzzahlen, das die Breite der Box definiert.patch_artist: Dieser Parameter akzeptiert boolesche Werte, entweder wahr oder falsch, und ist ein optionaler Parameter.Etiketten: Dies akzeptiert die Zeichenfolgen, die die Beschriftungen für jeden Datenpunkt definierenMittellinie: Es akzeptiert einen booleschen Wert und ist optional.Befehl: Legt die Reihenfolge des Boxplots fest.Bootstrap: Es akzeptiert den ganzzahligen Wert, der den Bereich des gekerbten Boxplots angibt.

Beispiel 1:

Wir erstellen den Zufallsdatensatz des Numpy-Arrays und erstellen das Boxplot.

Python-Chr-Funktion
 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

Ausgabe:

Boxplot in Python mit Matplotlib

Erläuterung:

Im obigen Code haben wir zunächst die Bibliotheken Numpy und Matplotlib in den Code importiert. Dann haben wir den Zufallsdatensatz erstellt und den Boxplot mit der Funktion boxplot() geplottet.

Beispiel2:

Wir können mehrere Boxplots gleichzeitig in derselben Datei erstellen.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

Ausgabe:

Boxplot in Python mit Matplotlib

Erläuterung:

Füße gegen Fuß

Im obigen Code haben wir vier Datensätze, die Zufallsmethoden von Numpy verwenden. Dann haben wir die Liste der vier Datensätze erstellt und verwenden diese innerhalb der boxplot()-Funktion.

Stringlänge Java

Beispiel 3:

Wir können einige Attribute der boxplot()-Funktion verwenden, um den Plot anzupassen.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

Ausgabe:

Boxplot in Python mit Matplotlib

Erläuterung:

Im obigen Code haben wir die vier Datensätze mithilfe von Zufallsfunktionen erstellt und in einer Liste zusammengefasst. Jetzt haben wir die verschiedenen Farben für jeden Boxplot mithilfe der Farbliste und der Funktion set_facecolor() festgelegt.

Wir haben die Linienbreite jedes Boxplots festgelegt und auch die Beschriftungen für jeden Boxplot festgelegt. Wir haben das Attribut vert =0 gesetzt, was bedeutet, dass alle Diagramme im horizontalen Modus vorliegen.