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:

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:

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:
