logo

Boxplot in Python mit Matplotlib

A Box-Plot ist auch bekannt als Whisker-Plot wird erstellt, um die Zusammenfassung des Satzes von Datenwerten mit Eigenschaften wie Minimum, erstes Quartil, Median, drittes Quartil und Maximum anzuzeigen. Im Boxplot wird eine Box vom ersten bis zum dritten Quartil erstellt, außerdem gibt es dort eine vertikale Linie, die am Median durch die Box geht. Hier bezeichnet die x-Achse die darzustellenden Daten, während die y-Achse die Häufigkeitsverteilung zeigt.

Boxplot erstellen

Das Modul matplotlib.pyplot der Matplotlib-Bibliothek bietet die Funktion boxplot(), mit deren Hilfe wir Boxplots erstellen können.



Syntax:

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

Parameter:



if else-Anweisung Java
Attribut Wert
Daten Array oder Folge von Arrays, die dargestellt werden sollen
Einkerbung Der optionale Parameter akzeptiert boolesche Werte
Grün Der optionale Parameter akzeptiert die booleschen Werte „false“ und „true“ für die horizontale bzw. vertikale Darstellung
Bootstrap Der optionale Parameter akzeptiert int und gibt Intervalle um gekerbte Boxplots an
Benutzermediane Der optionale Parameter akzeptiert ein Array oder eine Array-Sequenz, die mit den Daten kompatibel ist
Positionen Der optionale Parameter akzeptiert ein Array und legt die Position der Boxen fest
Breiten Der optionale Parameter akzeptiert ein Array und legt die Breite der Boxen fest
patch_artist optionaler Parameter mit booleschen Werten
Etiketten Die Zeichenfolgenfolge legt die Beschriftung für jeden Datensatz fest
Mittellinie Optional mit einem booleschen Wert. Versuchen Sie, die Mittellinie in voller Breite der Box darzustellen
Befehl Der optionale Parameter legt die Reihenfolge des Boxplots fest

Die an die ax.boxplot()-Methode übergebenen Datenwerte können ein Numpy-Array, eine Python-Liste oder ein Tupel von Arrays sein. Lassen Sie uns den Boxplot erstellen, indem wir numpy.random.normal() verwenden, um einige Zufallsdaten zu erstellen. Als Argumente werden der Mittelwert, die Standardabweichung und die gewünschte Anzahl von Werten verwendet.

Beispiel:

Python3






# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data>=> np.random.normal(>100>,>20>,>200>)> fig>=> plt.figure(figsize>=>(>10>,>7>))> # Creating plot> plt.boxplot(data)> # show plot> plt.show()>

Python-Chr-Funktion

>

>

Ausgabe:

Boxplot-Python

Anpassen des Boxplots

matplotlib.pyplot.boxplot() bietet endlose Anpassungsmöglichkeiten für den Boxplot. Das Attribut notch = True erstellt das Notch-Format für den Boxplot, patch_artist = True füllt den Boxplot mit Farben. Wir können verschiedene Farben für verschiedene Boxen festlegen. Das Attribut vert = 0 erstellt einen horizontalen Boxplot. Etiketten haben die gleichen Abmessungen wie die Zahlendatensätze.

Beispiel 1:

Python3




Füße gegen Fuß
# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data_1>=> np.random.normal(>100>,>10>,>200>)> data_2>=> np.random.normal(>90>,>20>,>200>)> data_3>=> np.random.normal(>80>,>30>,>200>)> data_4>=> np.random.normal(>70>,>40>,>200>)> data>=> [data_1, data_2, data_3, data_4]> fig>=> plt.figure(figsize>=>(>10>,>7>))> # Creating axes instance> ax>=> fig.add_axes([>0>,>0>,>1>,>1>])> # Creating plot> bp>=> ax.boxplot(data)> # show plot> plt.show()>

>

>

Ausgabe:

Boxplot-Python

Beispiel 2: Versuchen wir, die obige Darstellung mit einigen Anpassungen zu modifizieren:

Python3




# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data_1>=> np.random.normal(>100>,>10>,>200>)> data_2>=> np.random.normal(>90>,>20>,>200>)> data_3>=> np.random.normal(>80>,>30>,>200>)> data_4>=> np.random.normal(>70>,>40>,>200>)> data>=> [data_1, data_2, data_3, data_4]> fig>=> plt.figure(figsize>=>(>10>,>7>))> ax>=> fig.add_subplot(>111>)> # Creating axes instance> bp>=> ax.boxplot(data, patch_artist>=> True>,> >notch>=>'True'>, vert>=> 0>)> colors>=> [>'#0000FF'>,>'#00FF00'>,> >'#FFFF00'>,>'#FF00FF'>]> for> patch, color>in> zip>(bp[>'boxes'>], colors):> >patch.set_facecolor(color)> # changing color and linewidth of> # whiskers> for> whisker>in> bp[>'whiskers'>]:> >whisker.>set>(color>=>'#8B008B'>,> >linewidth>=> 1.5>,> >linestyle>=>':'>)> # changing color and linewidth of> # caps> for> cap>in> bp[>'caps'>]:> >cap.>set>(color>=>'#8B008B'>,> >linewidth>=> 2>)> # changing color and linewidth of> # medians> for> median>in> bp[>'medians'>]:> >median.>set>(color>=>'red'>,> >linewidth>=> 3>)> # changing style of fliers> for> flier>in> bp[>'fliers'>]:> >flier.>set>(marker>=>'D'>,> >color>=>'#e7298a'>,> >alpha>=> 0.5>)> > # x-axis labels> ax.set_yticklabels([>'data_1'>,>'data_2'>,> >'data_3'>,>'data_4'>])> # Adding title> plt.title(>'Customized box plot'>)> # Removing top axes and right axes> # ticks> ax.get_xaxis().tick_bottom()> ax.get_yaxis().tick_left()> > # show plot> plt.show()>

>

Stringlänge Java

>

Ausgabe:

Boxplot-Python