logo

Box Plot i Python ved hjelp av Matplotlib

EN Box Plot er også kjent som Whisker plot er opprettet for å vise sammendraget av settet med dataverdier som har egenskaper som minimum, første kvartil, median, tredje kvartil og maksimum. I boksplotten lages det en boks fra første kvartil til tredje kvartil, en vertikal linje er også der som går gjennom boksen ved medianen. Her angir x-aksen dataene som skal plottes mens y-aksen viser frekvensfordelingen.

Opprette boksplott

Matplotlib.pyplot-modulen til matplotlib-biblioteket gir boxplot()-funksjonen ved hjelp av hvilken vi kan lage boksplott.



Syntaks:

matplotlib.pyplot.boxplot(data, notch=Ingen, vert=Ingen, patch_artist=Ingen, bredder=Ingen)

Parametere:



Egenskap Verdi
data array eller sekvens av array som skal plottes
hakk valgfri parameter godtar boolske verdier
Grønn valgfri parameter aksepterer boolske verdier false og true for henholdsvis horisontal og vertikal plot
Støvelhempe valgfri parameter aksepterer int spesifiserer intervaller rundt hakkede boksplott
brukermedianer valgfri parameter aksepterer matrise eller sekvens av matrisedimensjon som er kompatibel med data
stillinger valgfri parameter aksepterer array og setter plasseringen av bokser
bredder valgfri parameter godtar array og setter bredden på boksene
patch_artist valgfri parameter som har boolske verdier
etiketter sekvens av strenger setter etikett for hvert datasett
middellinje valgfritt med boolsk verdi prøv å gjengi middellinje som full bredde på boksen
rekkefølge valgfri parameter angir rekkefølgen på boksplotten

Dataverdiene gitt til ax.boxplot()-metoden kan være en Numpy-matrise eller Python-liste eller Tuple of arrays. La oss lage boksplottene ved å bruke numpy.random.normal() for å lage noen tilfeldige data, det tar gjennomsnitt, standardavvik og ønsket antall verdier som argumenter.

Eksempel:

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

binært tre vs binært søketre

>

>

Produksjon:

boks-plott-python

Tilpasse boksplott

Matplotlib.pyplot.boxplot() gir uendelige tilpasningsmuligheter til boksplotten. Attributten Notch = True lager hakkformatet til boksplotten, patch_artist = True fyller boksplotten med farger, vi kan sette forskjellige farger til forskjellige bokser. Attributten vert = 0 lager horisontal boksplott. etiketter har samme dimensjoner som talldatasettene.

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

>

java-array til listen
>

Produksjon:

boks-plott-python

Eksempel 2: La oss prøve å endre plottet ovenfor med noen av tilpasningene:

Python3

kajal aggarwal




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

>

>

Produksjon:

boks-plott-python