Ce este Box Plot?
Un box plot este o modalitate de a vizualiza distribuția datelor folosind o casetă și niște linii verticale. Este cunoscut sub numele de complotul mustăților. Datele pot fi distribuite între cinci intervale cheie, care sunt după cum urmează:
Aici IQR reprezintă Interquartile Range care începe din prima cuartilă (Q1) și se termină la a treia cuartilă (Q3).
Vizualizare Box Plot
În diagrama cu casete, acele puncte care sunt în afara intervalului sunt numite valori aberante. Putem crea diagrama cu case a datelor pentru a determina următoarele:
- Numărul de valori aberante dintr-un set de date
- Sunt datele denaturate sau nu
- Intervalul de date
Intervalul de date de la minim la maxim se numește limită mustață. În Python, vom folosi modulul pyplot al modulului matplotlib, care are o funcție încorporată numită boxplot() care poate crea diagrama cu case a oricărui set de date.
Sintaxă:
matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none)
În funcția boxplot(), avem o mulțime de atribute care pot fi folosite pentru a crea o diagramă cu casete mai atractivă și uimitoare a setului de date.
Exemplul 1:
Vom crea setul de date aleatoare al matricei numpy și vom crea diagrama cu casete.
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()
Ieșire:
Explicaţie:
lista pe java
În codul de mai sus, în primul rând, am importat bibliotecile numpy și matplotlib în cod. Apoi am creat setul de date aleator și am trasat diagrama cu casete folosind funcția boxplot().
Exemplul 2:
Putem crea mai multe box plot simultan în același fișier.
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()
Ieșire:
Explicaţie:
În codul de mai sus, avem patru seturi de date folosind metode aleatorii de numpy. Apoi am creat lista celor patru seturi de date și am folosit această funcție în interiorul boxplot().
Exemplul 3:
Putem folosi unele atribute ale funcției boxplot() pentru a personaliza diagrama.
istoricul versiunilor 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_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()
Ieșire:
Explicaţie:
În codul de mai sus, am creat cele patru seturi de date folosind funcții aleatorii și le-am stabilit într-o listă. Acum am setat diferitele culori pentru fiecare diagramă cu casete folosind lista de culori și folosind funcția set_facecolor().
Am stabilit lățimea liniilor pentru fiecare diagramă cu casete și, de asemenea, am stabilit etichetele pentru fiecare diagramă cu casete. Am setat atributul vert =0, ceea ce înseamnă că toate diagramele vor fi în modul orizontal.