logo

Box plot in Python utilizzando Matplotlib

UN Trama a scatola è anche conosciuto come Trama dei baffi viene creato per visualizzare il riepilogo dell'insieme di valori di dati aventi proprietà come minimo, primo quartile, mediana, terzo quartile e massimo. Nel box plot, viene creata una scatola dal primo quartile al terzo quartile, c'è anche una linea verticale che attraversa la scatola nella mediana. Qui l'asse x indica i dati da tracciare mentre l'asse y mostra la distribuzione di frequenza.

Creazione del diagramma a scatola

Il modulo matplotlib.pyplot della libreria matplotlib fornisce la funzione boxplot() con l'aiuto della quale possiamo creare box plot.



Sintassi:

matplotlib.pyplot.boxplot(data, notch=Nessuno, vert=Nessuno, patch_artist=Nessuno, larghezze=Nessuno)

parametri:



Attributo Valore
dati matrice o sequenza di matrice da tracciare
tacca il parametro opzionale accetta valori booleani
Verde il parametro opzionale accetta i valori booleani false e true rispettivamente per il grafico orizzontale e verticale
bootstrap il parametro opzionale accetta int specifica gli intervalli attorno ai boxplot dentellati
usermediani il parametro facoltativo accetta un array o una sequenza di dimensioni dell'array compatibili con i dati
posizioni il parametro opzionale accetta l'array e imposta la posizione delle caselle
larghezze il parametro opzionale accetta l'array e imposta la larghezza dei riquadri
patch_artista parametro opzionale con valori booleani
etichette sequenza di stringhe imposta l'etichetta per ciascun set di dati
linea media facoltativo avendo un valore booleano prova a rendere la linea media come l'intera larghezza del riquadro
ordine il parametro opzionale imposta l'ordine del boxplot

I valori dei dati forniti al metodo ax.boxplot() possono essere un array Numpy, un elenco Python o una tupla di array. Creiamo il box plot utilizzando numpy.random.normal() per creare alcuni dati casuali, richiede media, deviazione standard e il numero desiderato di valori come argomenti.

Esempio:

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

>

forma normale di Greibach

>

Produzione:

box-plot-python

cronologia delle versioni di Android

Personalizzazione del box plot

matplotlib.pyplot.boxplot() offre infinite possibilità di personalizzazione del box plot. L'attributo notch = True crea il formato notch per il box plot, patch_artist = True riempie il box plot con i colori, possiamo impostare colori diversi su riquadri diversi. L'attributo vert = 0 crea un box plot orizzontale. le etichette assumono le stesse dimensioni dei set di dati numerici.

Esempio 1:

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>))> # Creating axes instance> ax>=> fig.add_axes([>0>,>0>,>1>,>1>])> # Creating plot> bp>=> ax.boxplot(data)> # show plot> plt.show()>

>

>

Produzione:

box-plot-python

Esempio 2: Proviamo a modificare la trama sopra con alcune personalizzazioni:

Python3


differenza tra ghiaccio e neve



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

>

>

Produzione:

box-plot-python