logo

Box Plot v Pythonu pomocí Matplotlib

A Box Plot je také známý jako Whisker spiknutí je vytvořen pro zobrazení souhrnu sady hodnot dat s vlastnostmi jako minimum, první kvartil, medián, třetí kvartil a maximum. V krabicovém grafu je vytvořen rámeček od prvního kvartilu po třetí kvartil, je zde také svislá čára, která prochází rámečkem na mediánu. Zde osa x označuje data, která mají být vykreslena, zatímco osa y ukazuje rozdělení frekvence.

Vytváření krabicového grafu

Modul matplotlib.pyplot knihovny matplotlib poskytuje funkci boxplot(), pomocí které můžeme vytvářet krabicové grafy.



Syntax:

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

Parametry:



Atribut Hodnota
data pole nebo posloupnost pole, které má být vykresleno
zářez volitelný parametr přijímá booleovské hodnoty
Zelená volitelný parametr přijímá booleovské hodnoty false a true pro horizontální a vertikální graf
bootstrap volitelný parametr přijímá int určuje intervaly kolem vrubových boxplotů
uživatelské mediány volitelný parametr akceptuje pole nebo sekvenci dimenzí pole kompatibilní s daty
pozice volitelný parametr přijímá pole a nastavuje polohu polí
šířky volitelný parametr přijímá pole a nastavuje šířku polí
patch_artist volitelný parametr s booleovskými hodnotami
štítky sekvence řetězců nastavuje štítek pro každou datovou sadu
střední čára volitelné s booleovskou hodnotou pokusit se vykreslit střední čáru jako plnou šířku rámečku
objednat volitelný parametr nastavuje pořadí boxplotu

Hodnoty dat předané metodě ax.boxplot() mohou být pole Numpy nebo Python seznam nebo Nice polí. Vytvořme krabicový graf pomocí numpy.random.normal() k vytvoření některých náhodných dat, jako argumenty bere průměr, směrodatnou odchylku a požadovaný počet hodnot.

Příklad:

k nejbližší soused

Python3






1nf 2nf 3nf

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

>

>

Výstup:

box-plot-python

Přizpůsobení krabicového grafu

Matplotlib.pyplot.boxplot() poskytuje nekonečné možnosti přizpůsobení krabicového grafu. Atribut notch = True vytváří formát notch pro krabicový graf, patch_artist = True vyplní krabici barvami, různým krabicím můžeme nastavit různé barvy. Atribut vert = 0 vytváří horizontální krabicový graf. štítky mají stejné rozměry jako číselné datové sady.

Příklad 1:

Python3




unix vytvořit adresář

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

pole c řetězec
>

>

Výstup:

box-plot-python

Příklad 2: Pokusme se upravit výše uvedený graf pomocí některých přizpůsobení:

Python3




jvm

# 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ýstup:

box-plot-python