logo

Box Plot v Pythone pomocou Matplotlib

A Krabicový pozemok je tiež známy ako Fúzová zápletka je vytvorený na zobrazenie súhrnu množiny hodnôt údajov s vlastnosťami ako minimum, prvý kvartil, medián, tretí kvartil a maximum. V krabicovom grafe je vytvorený rámček od prvého kvartilu po tretí kvartil, je tu tiež zvislá čiara, ktorá prechádza rámčekom pri mediáne. Os x tu označuje údaje, ktoré sa majú vykresliť, zatiaľ čo os y ukazuje rozdelenie frekvencie.

Vytváranie krabicového grafu

Modul matplotlib.pyplot knižnice matplotlib poskytuje funkciu boxplot(), pomocou ktorej môžeme vytvárať krabicové grafy.



Syntax:

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

Parametre:



Atribút Hodnota
údajov pole alebo postupnosť poľa, ktoré sa má vykresliť
zárez voliteľný parameter akceptuje boolovské hodnoty
zelená voliteľný parameter akceptuje boolovské hodnoty false a true pre horizontálny a vertikálny graf
bootstrap voliteľný parameter akceptuje int špecifikuje intervaly okolo vrúbkovaných boxplots
užívateľské mediány voliteľný parameter akceptuje pole alebo postupnosť rozmerov poľa kompatibilných s údajmi
pozície voliteľný parameter akceptuje pole a nastavuje polohu políčok
šírky voliteľný parameter akceptuje pole a nastavuje šírku políčok
patch_artist voliteľný parameter s boolovskými hodnotami
štítky postupnosť reťazcov nastavuje označenie pre každý súbor údajov
stredná čiara voliteľné s boolovskou hodnotou skúste vykresliť strednú čiaru ako plnú šírku rámčeka
objednať voliteľný parameter nastavuje poradie boxplotu

Hodnoty údajov pridelené metóde ax.boxplot() môžu byť Numpy pole alebo Python zoznam alebo Numpa polí. Vytvorme krabicový graf pomocou numpy.random.normal() na vytvorenie niektorých náhodných údajov, pričom ako argumenty sa použijú priemer, štandardná odchýlka a požadovaný počet hodnôt.

Príklad:

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

abecedy k číslam

>

>

Výkon:

box-plot-python

Prispôsobenie krabicového grafu

Matplotlib.pyplot.boxplot() poskytuje nekonečné možnosti prispôsobenia krabicového grafu. Atribút notch = True vytvára formát notch boxového grafu, patch_artist = True vypĺňa box plot farbami, rôznym boxom môžeme nastaviť rôzne farby. Atribút vert = 0 vytvára horizontálny box plot. štítky majú rovnaké rozmery ako množiny údajov.

Príklad 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()>

>

príkaz java if else
>

Výkon:

box-plot-python

Príklad 2: Pokúsme sa upraviť vyššie uvedený graf pomocou niektorých prispôsobení:

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

>

>

Výkon:

box-plot-python