logo

Box Plot i Python med Matplotlib

A Box Plot är också känd som Morrhår tomt skapas för att visa sammanfattningen av uppsättningen datavärden som har egenskaper som minimum, första kvartil, median, tredje kvartil och maximum. I boxplotten skapas en ruta från första kvartilen till tredje kvartilen, en vertikal linje finns också där som går genom boxen vid medianen. Här betecknar x-axeln de data som ska plottas medan y-axeln visar frekvensfördelningen.

Skapa Box Plot

Matplotlib.pyplot-modulen i matplotlib-biblioteket tillhandahåller boxplot()-funktion med hjälp av vilken vi kan skapa boxplots.



Syntax:

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

Parametrar:



Attribut Värde
data array eller sekvens av array som ska plottas
hack valfri parameter accepterar booleska värden
Grön optional parameter accepterar booleska värden false och true för horisontell respektive vertikal plot
bootstrap valfri parameter accepterar int specificerar intervall runt skårade boxplots
användarmedianer valfri parameter accepterar array eller sekvens av arraydimension som är kompatibel med data
positioner valfri parameter accepterar array och ställer in boxarnas position
bredder valfri parameter accepterar array och ställer in bredden på rutor
patch_artist valfri parameter med booleska värden
etiketter sekvens av strängar sätter etikett för varje datamängd
medellinje valfritt med booleskt värde försök att återge medellinjen som full bredd på rutan
beställa valfri parameter ställer in ordningen på boxplotten

Datavärdena som ges till metoden ax.boxplot() kan vara en Numpy-array eller Python-lista eller Tuple of arrays. Låt oss skapa boxplotten genom att använda numpy.random.normal() för att skapa några slumpmässiga data, det tar medelvärde, standardavvikelse och önskat antal värden som argument.

Exempel:

tostring-metoden i java

Python3






csv-fil läsning i java

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

>

>

Produktion:

box-plot-python

Anpassa Box Plot

Matplotlib.pyplot.boxplot() ger oändliga anpassningsmöjligheter till boxplotten. Attributet Notch = True skapar notch-formatet till boxplotten, patch_artist = True fyller boxplotten med färger, vi kan ställa in olika färger på olika rutor. Attributet vert = 0 skapar horisontell boxplot. Etiketter har samma dimensioner som nummerdatauppsättningarna.

Exempel 1:

Python3




zeenat aman skådespelare

# 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 sträng klass
>

>

Produktion:

box-plot-python

Exempel 2: Låt oss försöka modifiera ovanstående plot med några av anpassningarna:

Python3




repl 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