logo

Box Plot în Python folosind Matplotlib

A Box Plot mai este cunoscut ca Whisker plot este creat pentru a afișa rezumatul setului de valori de date având proprietăți precum minim, primul quartil, median, al treilea quartil și maxim. În diagrama cu casete, este creată o casetă de la primul quartila la al treilea quartila, există și o linie verticală care trece prin casetă la mediană. Aici axa x indică datele care trebuie trasate în timp ce axa y arată distribuția frecvenței.

Crearea Box Plot

Modulul matplotlib.pyplot al bibliotecii matplotlib oferă funcția boxplot() cu ajutorul căreia putem crea box plot.



Sintaxă:

matplotlib.pyplot.boxplot(data, notch=None, vert=None, patch_artist=None, widths=None)

Parametri:



Atribut Valoare
date matrice sau secvență de matrice care urmează să fie reprezentată
crestătură parametrul opțional acceptă valori booleene
Verde parametrul opțional acceptă valori booleene false și adevărate pentru graficul orizontal și respectiv vertical
bootstrap parametrul opțional accepts int specifică intervalele din jurul boxplot-urilor crestate
usermedians parametrul opțional acceptă o matrice sau o secvență de dimensiune a matricei compatibilă cu datele
pozitii parametrul opțional acceptă matrice și setează poziția casetelor
lățimi parametrul opțional acceptă matrice și setează lățimea casetelor
patch_artist parametru opțional având valori booleene
etichete secvența de seturi de șiruri de caractere etichetă pentru fiecare set de date
linia medie opțional având valoare booleană încercați să redați linia medie ca lățime completă a casetei
Ordin parametrul opțional stabilește ordinea boxplot-ului

Valorile datelor date metodei ax.boxplot() pot fi o matrice Numpy sau o listă Python sau un tuplu de matrice. Să creăm diagrama cu casete utilizând numpy.random.normal() pentru a crea niște date aleatorii, este nevoie de media, deviația standard și numărul dorit de valori ca argumente.

Exemplu:

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

>

>

Ieșire:

box-plot-python

Personalizarea Box Plot

Matplotlib.pyplot.boxplot() oferă posibilități infinite de personalizare pentru diagrama de casete. Atributul Notch = True creează formatul notch pentru diagrama de casete, patch_artist = True umple diagrama de casete cu culori, putem seta culori diferite pentru casete diferite. Atributul vert = 0 creează diagramă de casetă orizontală. etichetele au aceleași dimensiuni ca și seturile de date numerice.

Exemplul 1:

Python3

lista pe java


istoricul versiunilor Android



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

>

>

Ieșire:

box-plot-python

Exemplul 2: Să încercăm să modificăm diagrama de mai sus cu unele dintre personalizări:

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

>

>

Ieșire:

box-plot-python