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:

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:

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:
