logo

Box Plot programmā Python, izmantojot Matplotlib

A Kastes gabals ir pazīstams arī kā Ūsu sižets ir izveidots, lai parādītu datu vērtību kopas kopsavilkumu ar tādām īpašībām kā minimums, pirmā kvartile, mediāna, trešā kvartile un maksimums. Kastes diagrammā tiek izveidots lodziņš no pirmās kvartiles līdz trešajai kvartilei, tur ir arī vertikāla līnija, kas iet cauri lodziņam mediānā. Šeit x ass apzīmē datus, kas jāzīmē, bet y ass parāda frekvences sadalījumu.

Kastes zemes gabala izveide

Matplotlib bibliotēkas modulis matplotlib.pyplot nodrošina boxplot() funkciju, ar kuras palīdzību mēs varam izveidot lodziņus.



Sintakse:

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

Parametri:



Atribūts Vērtība
datus uzzīmējamais masīvs vai masīva secība
iecirtums neobligāts parametrs pieņem Būla vērtības
Zaļš neobligāts parametrs pieņem Būla vērtības false un true attiecīgi horizontālajai un vertikālajai diagrammai
bootstrap izvēles parametrs akceptē int norāda intervālus ap iezāģētiem lodziņos
lietotāju mediji neobligāts parametrs pieņem masīvu vai masīva dimensiju secību, kas ir saderīga ar datiem
pozīcijas izvēles parametrs pieņem masīvu un iestata lodziņu pozīciju
platumi izvēles parametrs pieņem masīvu un iestata lodziņu platumu
patch_artist neobligāts parametrs ar Būla vērtībām
etiķetes virkņu secības kopu etiķete katrai datu kopai
viduslīnija neobligāti ar Būla vērtību mēģiniet renderēt vidējo līniju kā lodziņa pilnu platumu
pasūtījums izvēles parametrs iestata boxplot secību

Metodei ax.boxplot() piešķirtās datu vērtības var būt Numpy masīvs vai Python saraksts vai masīvu virkne. Izveidosim lodziņu, izmantojot numpy.random.normal(), lai izveidotu dažus nejaušus datus. Kā argumenti tiek ņemta vidējā vērtība, standarta novirze un vēlamais vērtību skaits.

Piemērs:

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

>

kaudze java
>

Izvade:

box-plot-python

Kastes zemes gabala pielāgošana

Matplotlib.pyplot.boxplot() nodrošina bezgalīgas lodziņa pielāgošanas iespējas. Atribūts notch = True izveido iecirtuma formātu lodziņam, patch_artist = True aizpilda boxplot ar krāsām, mēs varam iestatīt dažādas krāsas dažādām kastēm. Atribūts vert = 0 veido horizontālu lodziņu. etiķetēm ir tādi paši izmēri kā skaitļu datu kopām.

1. piemērs:

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

>

>

Izvade:

box-plot-python

2. piemērs: Mēģināsim modificēt iepriekš minēto sižetu ar dažiem pielāgojumiem:

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

>

>

Izvade:

box-plot-python