logo

Box Plot în Python folosind Matplotlib

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ă:

    Minim: Q1-1,5*IQR1-a quartila(Î1): percentila 25Median: percentila 50al 3-lea trimestru(Q3): percentila 75Maxim: Q3+1,5*IQR

Aici IQR reprezintă Interquartile Range care începe din prima cuartilă (Q1) și se termină la a treia cuartilă (Q3).

Vizualizare Box Plot

Box Plot în Python folosind Matplotlib

Î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.

    date: Datele ar trebui să fie o matrice sau o secvență de matrice care vor fi reprezentate.crestătură: Acest parametru acceptă numai valori booleene, fie adevărate, fie false.Verde: Acest atribut acceptă o valoare booleană. Dacă este setat la adevărat, atunci graficul va fi vertical. În caz contrar, va fi orizontal.poziţie: Acceptă matricea de numere întregi care definește poziția casetei.lățimi: Acceptă matricea de numere întregi care definește lățimea casetei.patch_artist: acest parametru acceptă valori booleene, fie adevărate, fie false, iar acesta este un parametru opțional.etichete: Acceptă șirurile care definesc etichetele pentru fiecare punct de datelinia medie: Acceptă o valoare booleană și este opțional.Ordin: Stabilește ordinea boxplot-ului.bootstrap: Acceptă valoarea întreagă, care specifică intervalul boxplot-ului crestat.

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:

Box Plot în Python folosind Matplotlib

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:

Box Plot în Python folosind Matplotlib

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:

Box Plot în Python folosind Matplotlib

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.