logo

Box Plot v Pythonu z uporabo Matplotlib

A Box Plot je znan tudi kot Zaplet z brki je ustvarjen za prikaz povzetka niza podatkovnih vrednosti z lastnostmi, kot so minimum, prvi kvartil, mediana, tretji kvartil in maksimum. Na grafu škatle je kvadrat ustvarjen od prvega kvartila do tretjega kvartila, tam je tudi navpična črta, ki gre skozi kvadrat na mediani. Tukaj x-os označuje podatke, ki jih je treba narisati, medtem ko y-os prikazuje porazdelitev frekvence.

Ustvarjanje škatlastega izrisa

Modul matplotlib.pyplot knjižnice matplotlib nudi funkcijo boxplot(), s pomočjo katere lahko ustvarimo škatlaste izrise.



Sintaksa:

matplotlib.pyplot.boxplot(data, notch=Brez, vert=Brez, patch_artist=Brez, širine=Brez)

Parametri:



Atribut Vrednost
podatke matriko ali zaporedje matrike, ki jo je treba izrisati
zareza izbirni parameter sprejema logične vrednosti
Zelena izbirni parameter sprejema logične vrednosti false in true za vodoravni oziroma navpični izris
bootstrap izbirni parameter sprejema int določa intervale okoli zarezanih kvadratov
uporabniki medians izbirni parameter sprejme matriko ali zaporedje dimenzij matrike, združljive s podatki
položajih izbirni parameter sprejme matriko in nastavi položaj polj
širine izbirni parameter sprejme matriko in nastavi širino polj
patch_artist izbirni parameter z logičnimi vrednostmi
etikete zaporedje nizov določa oznako za vsak nabor podatkov
meanline izbirno z logično vrednostjo poskusite upodobiti srednjo črto kot celotno širino polja
naročilo izbirni parameter nastavi vrstni red polja

Podatkovne vrednosti, podane metodi ax.boxplot(), so lahko matrika Numpy ali seznam Python ali Tuple matrik. Ustvarimo škatlasto grafiko z uporabo numpy.random.normal() za ustvarjanje nekaj naključnih podatkov, kot argumente vzame povprečje, standardni odklon in želeno število vrednosti.

primer:

Python3






koliko je star pete davidson

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

>

>

Izhod:

box-plot-python

Prilagajanje okvirnega izrisa

Matplotlib.pyplot.boxplot() ponuja neskončne možnosti prilagajanja škatlastega izrisa. Atribut notch = True ustvari obliko zareze za okvirni izris, patch_artist = True zapolni okvir z barvami, različnim poljem lahko nastavimo različne barve. Atribut vert = 0 ustvari vodoravni okvirni izris. oznake imajo enake dimenzije kot nabori številskih podatkov.

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

>

>

Izhod:

box-plot-python

Primer 2: Poskusimo spremeniti zgornji izris z nekaterimi prilagoditvami:

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

>

>

Izhod:

box-plot-python