Vad är Box Plot?
En boxplot är ett sätt att visualisera distributionen av data genom att använda en ruta och några vertikala linjer. Det är känt som whisker plot. Data kan fördelas mellan fem nyckelområden, som är följande:
Här representerar IQR Kvartilavståndet som börjar från den första kvartilen (Q1) och slutar vid den tredje kvartilen (Q3).
Box Plot visualisering
I boxplotten kallas de punkter som ligger utanför intervallet för extremvärden. Vi kan skapa boxplotten för data för att bestämma följande:
- Antalet extremvärden i en datauppsättning
- Är uppgifterna skeva eller inte
- Dataintervallet
Dataintervallet från minimum till maximum kallas whisker limit. I Python kommer vi att använda matplotlib-modulens pyplot-modul, som har en inbyggd funktion som heter boxplot() som kan skapa boxplotten för vilken datauppsättning som helst.
Syntax:
matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none)
I funktionen boxplot() har vi många attribut som kan användas för att skapa en mer attraktiv och fantastisk boxplot av datamängden.
Exempel 1:
Vi kommer att skapa den slumpmässiga datamängden för numpy-arrayen och skapa boxplotten.
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:
Förklaring:
I koden ovan har vi först och främst importerat biblioteken numpy och matplotlib i koden. Sedan skapade vi den slumpmässiga datamängden och plottade boxplotten med funktionen boxplot().
Exempel 2:
Vi kan skapa flera boxplots samtidigt i samma 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:
Förklaring:
I ovanstående kod har vi fyra datamängder med slumpmässiga metoder för numpy. Sedan har vi skapat listan med de fyra datamängderna och använder denna inside boxplot()-funktion.
Exempel 3:
Vi kan använda några attribut för boxplot()-funktionen för att anpassa plotten.
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:
Förklaring:
I koden ovan har vi skapat de fyra datamängderna med slumpmässiga funktioner och satt dem i en lista. Nu har vi ställt in de olika färgerna för varje boxplott med hjälp av listan över färger och med funktionen set_facecolor().
Vi har ställt in linjebredden för varje boxplot och även ställt in etiketterna för varje boxplot. Vi har satt attributet vert =0, vilket betyder att alla plotter kommer att vara i horisontellt läge.