logo

Box Plot i Python ved hjælp af Matplotlib

EN Box Plot er også kendt som Whisker plot er oprettet for at vise oversigten over sættet af dataværdier med egenskaber som minimum, første kvartil, median, tredje kvartil og maksimum. I boksplottet oprettes en kasse fra første kvartil til tredje kvartil, en lodret linje er der også, som går gennem boksen ved medianen. Her angiver x-aksen de data, der skal plottes, mens y-aksen viser frekvensfordelingen.

Oprettelse af boksplot

Matplotlib.pyplot-modulet i matplotlib-biblioteket giver boxplot()-funktionen, ved hjælp af hvilken vi kan oprette boxplot.



Syntaks:

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

Parametre:



Attribut Værdi
data array eller sekvens af array, der skal plottes
hak valgfri parameter accepterer booleske værdier
Grøn valgfri parameter accepterer booleske værdier falsk og sand for henholdsvis vandret og lodret plot
bootstrap valgfri parameter accepterer int specificerer intervaller omkring notched boxplots
brugermedianer valgfri parameter accepterer matrix eller sekvens af matrixdimension, der er kompatibel med data
stillinger valgfri parameter accepterer array og indstiller placeringen af ​​kasser
bredder valgfri parameter accepterer array og indstiller bredden af ​​kasser
patch_artist valgfri parameter med booleske værdier
etiketter sekvens af strenge sæt etiket for hvert datasæt
middellinje valgfrit med boolesk værdi prøv at gengive middellinje som fuld bredde af boksen
bestille valgfri parameter indstiller rækkefølgen af ​​boxplotten

Dataværdierne givet til ax.boxplot()-metoden kan være en Numpy-array eller Python-liste eller Tuple of arrays. Lad os oprette boksplotten ved at bruge numpy.random.normal() til at skabe nogle tilfældige data, det tager middelværdi, standardafvigelse og det ønskede antal værdier 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()>

hashset vs hashmap

>

>

Produktion:

box-plot-python

Tilpasning af boksplot

Matplotlib.pyplot.boxplot() giver uendelige tilpasningsmuligheder til boksplotten. Attributten notch = True opretter notch-formatet til boksplotten, patch_artist = True fylder boksplotten med farver, vi kan indstille forskellige farver til forskellige kasser. Attributten vert = 0 skaber vandret boksplot. etiketter har samme dimensioner som antal datasæt.

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 sortering
>

Produktion:

box-plot-python

Eksempel 2: Lad os prøve at ændre ovenstående plot med nogle af tilpasningerne:

Python3

hvordan man initialiserer et array i java




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

>

>

Produktion:

box-plot-python