logo

Box Plot i Python ved hjælp af Matplotlib

Hvad er Box Plot?

Et boksplot er en måde at visualisere fordelingen af ​​data ved at bruge en boks og nogle lodrette linjer. Det er kendt som whisker plot. Dataene kan fordeles mellem fem nøgleområder, som er som følger:

    Minimum: Q1-1,5*IQR1. kvartil(Q1): 25. percentilMedian:50. percentil3. kvartal(Q3):75. percentilMaksimum: Q3+1,5*IQR

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

Box Plot visualisering

Box Plot i Python ved hjælp af Matplotlib

I boksplottet kaldes de punkter, der er uden for rækkevidde, for outliers. Vi kan oprette boksplot af dataene for at bestemme følgende:

  • Antallet af outliers i et datasæt
  • Er dataene skæve eller ej
  • Rækkevidden af ​​data

Dataintervallet fra minimum til maksimum kaldes whisker-grænsen. I Python vil vi bruge matplotlib-modulets pyplot-modul, som har en indbygget funktion ved navn boxplot(), som kan skabe boxplot af ethvert datasæt.

hashset vs hashmap

Syntaks:

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

I funktionen boxplot() har vi en masse attributter, som kan bruges til at skabe et mere attraktivt og fantastisk boksplot af datasættet.

    data: Dataene skal være et array eller en sekvens af arrays, som vil blive plottet.hak: Denne parameter accepterer kun booleske værdier, enten sande eller falske.Grøn: Denne attribut accepterer en boolsk værdi. Hvis den er sat til sand, vil grafen være lodret. Ellers vil det være vandret.position: Den accepterer den række af heltal, som definerer boksens position.bredder: Den accepterer rækken af ​​heltal, som definerer boksens bredde.patch_artist: denne parameter accepterer booleske værdier, enten sand eller falsk, og dette er en valgfri parameter.etiketter: Dette accepterer de strenge, der definerer etiketterne for hvert datapunktmiddellinje: Den accepterer en boolesk værdi, og den er valgfri.bestille: Det angiver rækkefølgen af ​​boxplotten.bootstrap: Den accepterer heltalsværdien, som angiver rækkevidden af ​​det notchede boxplot.

Eksempel 1:

Vi vil oprette det tilfældige datasæt for numpy-arrayet og oprette 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() 

Produktion:

Box Plot i Python ved hjælp af Matplotlib

Forklaring:

I ovenstående kode har vi først og fremmest importeret bibliotekerne numpy og matplotlib i koden. Derefter oprettede vi det tilfældige datasæt og plottede boxplotten ved hjælp af boxplot()-funktionen.

Eksempel 2:

Vi kan oprette flere boksplot samtidigt i den 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() 

Produktion:

Box Plot i Python ved hjælp af Matplotlib

Forklaring:

java array sortering

I ovenstående kode har vi fire datasæt ved hjælp af tilfældige metoder til numpy. Så har vi lavet listen over de fire datasæt og bruger denne inside boxplot() funktion.

Eksempel 3:

Vi kan bruge nogle attributter af funktionen boxplot() til at 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() 

Produktion:

hvordan man initialiserer et array i java
Box Plot i Python ved hjælp af Matplotlib

Forklaring:

I ovenstående kode har vi oprettet de fire datasæt ved hjælp af tilfældige funktioner og sat dem i en liste. Nu har vi indstillet de forskellige farver for hvert boksplot ved hjælp af listen over farver og ved hjælp af funktionen set_facecolor().

Vi har indstillet linjebredden for hvert kasseplot og også sat etiketterne for hvert kasseplot. Vi har sat attributten vert =0, hvilket betyder, at alle plots vil være i vandret tilstand.