Cos'è il boxplot?
Un box plot è un modo per visualizzare la distribuzione dei dati utilizzando un riquadro e alcune linee verticali. È noto come il complotto dei baffi. I dati possono essere distribuiti tra cinque intervalli chiave, che sono i seguenti:
Qui IQR rappresenta il Intervallo interquartile che inizia dal primo quartile (Q1) e termina al terzo quartile (Q3).
Visualizzazione del boxplot
Nel box plot i punti fuori range vengono chiamati outlier. Possiamo creare il box plot dei dati per determinare quanto segue:
- Il numero di valori anomali in un set di dati
- I dati sono distorti o no
- L'intervallo dei dati
L'intervallo dei dati dal minimo al massimo è chiamato limite dei baffi. In Python, utilizzeremo il modulo pyplot del modulo matplotlib, che ha una funzione incorporata denominata boxplot() che può creare il box plot di qualsiasi set di dati.
Sintassi:
matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none)
Nella funzione boxplot(), abbiamo molti attributi che possono essere utilizzati per creare un box plot più attraente e sorprendente del set di dati.
Esempio 1:
Creeremo il set di dati casuali dell'array Numpy e creeremo il box plot.
forma normale di Greibach
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()
Produzione:
Spiegazione:
Nel codice sopra, prima di tutto, abbiamo importato nel codice le librerie numpy e matplotlib. Quindi abbiamo creato il set di dati casuale e tracciato il box plot utilizzando la funzione boxplot().
Esempio2:
Possiamo creare più box plot contemporaneamente nello stesso file.
cronologia delle versioni di Android
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()
Produzione:
Spiegazione:
Nel codice sopra abbiamo quattro set di dati che utilizzano metodi casuali di Numpy. Quindi abbiamo creato l'elenco dei quattro set di dati e utilizziamo questa funzione interna boxplot().
Esempio 3:
Possiamo utilizzare alcuni attributi della funzione boxplot() per personalizzare la trama.
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()
Produzione:
Spiegazione:
Nel codice precedente, abbiamo creato i quattro set di dati utilizzando funzioni casuali e li abbiamo impostati in un elenco. Ora abbiamo impostato i diversi colori per ogni box plot utilizzando la lista dei colori e utilizzando la funzione set_facecolor().
differenza tra ghiaccio e neve
Abbiamo impostato la larghezza della linea di ogni box plot e impostato anche le etichette per ogni box plot. Abbiamo impostato l'attributo vert =0, il che significa che tutti i grafici saranno in modalità orizzontale.