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:

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:

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:
