logo

Box Plot i Python ved hjelp av Matplotlib

Hva er Box Plot?

Et boksplott er en måte å visualisere distribusjonen av dataene ved å bruke en boks og noen vertikale linjer. Det er kjent som whisker plot. Dataene kan fordeles mellom fem nøkkelområder, som er som følger:

    Minimum: Q1-1,5*IQR1. kvartil(Q1): 25. persentilMedian:50. persentil3. kvartal(Q3):75. persentilMaksimum: Q3+1,5*IQR

Her representerer IQR InterQuartil Range som starter fra første kvartil (Q1) og slutter ved tredje kvartil (Q3).

Box Plot visualisering

Box Plot i Python ved hjelp av Matplotlib

I boksplottet kalles de punktene som er utenfor rekkevidde for uteliggere. Vi kan lage boksplotten til dataene for å bestemme følgende:

  • Antall uteliggere i et datasett
  • Er dataene skjeve eller ikke
  • Rekkevidden til dataene

Dataområdet fra minimum til maksimum kalles whisker-grensen. I Python vil vi bruke matplotlib-modulens pyplot-modul, som har en innebygd funksjon kalt boxplot() som kan lage boksplotten til ethvert datasett.

binært tre vs binært søketre

Syntaks:

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

I boxplot()-funksjonen har vi mange attributter som kan brukes til å lage et mer attraktivt og fantastisk boksplott av datasettet.

    data: Dataene skal være en matrise eller sekvens av matriser som skal plottes.hakk: Denne parameteren aksepterer bare boolske verdier, enten sant eller usant.Grønn: Dette attributtet godtar en boolsk verdi. Hvis den er satt til sann, vil grafen være vertikal. Ellers vil det være horisontalt.posisjon: Den aksepterer arrayen av heltall som definerer plasseringen av boksen.bredder: Den aksepterer matrisen av heltall som definerer bredden på boksen.patch_artist: denne parameteren godtar boolske verdier, enten sant eller usant, og dette er en valgfri parameter.etiketter: Dette aksepterer strengene som definerer etikettene for hvert datapunktmiddellinje: Den godtar en boolsk verdi, og den er valgfri.rekkefølge: Den angir rekkefølgen på boxplotten.Støvelhempe: Den aksepterer heltallsverdien, som spesifiserer rekkevidden til det hakkede boksplot.

Eksempel 1:

Vi vil lage det tilfeldige datasettet til numpy-matrisen og lage boksplotten.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

Produksjon:

Box Plot i Python ved hjelp av Matplotlib

Forklaring:

I koden ovenfor har vi først og fremst importert bibliotekene numpy og matplotlib i koden. Deretter opprettet vi det tilfeldige datasettet og plottet boksplotten ved å bruke boxplot()-funksjonen.

Eksempel 2:

Vi kan lage flere boksplott samtidig i samme fil.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

Produksjon:

Box Plot i Python ved hjelp av Matplotlib

Forklaring:

java-array til listen

I koden ovenfor har vi fire datasett som bruker tilfeldige metoder for numpy. Så har vi laget listen over de fire datasettene og bruker denne inside boxplot()-funksjonen.

Eksempel 3:

Vi kan bruke noen attributter til boxplot()-funksjonen for å tilpasse plottet.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

Produksjon:

kajal aggarwal
Box Plot i Python ved hjelp av Matplotlib

Forklaring:

I koden ovenfor har vi laget de fire datasettene ved hjelp av tilfeldige funksjoner og satt dem i en liste. Nå har vi satt de forskjellige fargene for hvert boksplott ved å bruke listen over farger og bruke funksjonen set_facecolor().

Vi har satt linjebredden på hvert boksplott og også satt etikettene for hvert boksplott. Vi har satt attributtet vert =0, som betyr at alle plottene vil være i horisontal modus.