logo

Box Plot v Pythonu z uporabo Matplotlib

Kaj je Box Plot?

Škatla je način za vizualizacijo porazdelitve podatkov z uporabo škatle in nekaj navpičnih črt. Znana je kot zaplet z brki. Podatke je mogoče porazdeliti med pet ključnih obsegov, ki so naslednji:

    Najmanjša: Q1-1,5*IQR1. kvartil(Q1): 25. percentilMediana:50. percentil3. četrtina(Q3): 75. percentilNajveč: Q3+1,5*IQR

Tukaj IQR predstavlja Interkvartilni razpon ki se začne v prvem kvartilu (Q1) in konča v tretjem kvartilu (Q3).

Vizualizacija Box Plot

Box Plot v Pythonu z uporabo Matplotlib

V škatlastem prikazu se tiste točke, ki so izven obsega, imenujejo izstopajoči. Ustvarimo lahko škatlasto grafiko podatkov, da ugotovimo naslednje:

  • Število izstopajočih vrednosti v naboru podatkov
  • Ali so podatki napačni ali ne
  • Razpon podatkov

Razpon podatkov od minimuma do maksimuma se imenuje meja brkov. V Pythonu bomo uporabili modul pyplot modula matplotlib, ki ima vgrajeno funkcijo z imenom boxplot(), ki lahko ustvari okvirni izris katerega koli niza podatkov.

Sintaksa:

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

V funkciji boxplot() imamo veliko atributov, ki jih lahko uporabimo za ustvarjanje privlačnejšega in neverjetnejšega škatlastega izrisa nabora podatkov.

    podatke: Podatki morajo biti niz ali zaporedje nizov, ki bodo narisani.zareza: Ta parameter sprejema samo logične vrednosti, bodisi true ali false.Zelena: Ta atribut sprejme logično vrednost. Če je nastavljeno na true, bo graf navpičen. V nasprotnem primeru bo vodoravna.položaj: Sprejme niz celih števil, ki določa položaj polja.širine: Sprejme matriko celih števil, ki določa širino polja.patch_artist: ta parameter sprejema logične vrednosti, bodisi true ali false, in to je neobvezen parameter.nalepke: To sprejme nize, ki določajo oznake za vsako podatkovno točkomeanline: Sprejema logično vrednost in ni obvezna.naročilo: Nastavi vrstni red okvirja.bootstrap: Sprejme celoštevilsko vrednost, ki določa obseg zarezane škatle.

Primer1:

Ustvarili bomo naključni nabor podatkov matrike numpy in ustvarili škatlasti izris.

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

Izhod:

Box Plot v Pythonu z uporabo Matplotlib

Pojasnilo:

V zgornji kodi smo najprej uvozili knjižnici numpy in matplotlib v kodo. Nato smo ustvarili naključni nabor podatkov in s funkcijo boxplot() narisali škatlasti izris.

Primer2:

V isti datoteki lahko ustvarimo več škatlastih risb hkrati.

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

Izhod:

Box Plot v Pythonu z uporabo Matplotlib

Pojasnilo:

V zgornji kodi imamo štiri nabore podatkov z uporabo naključnih metod numpy. Nato smo ustvarili seznam štirih nizov podatkov in uporabili to notranjo funkcijo boxplot().

Primer 3:

Za prilagajanje risbe lahko uporabimo nekatere atribute funkcije boxplot().

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

Izhod:

Box Plot v Pythonu z uporabo Matplotlib

Pojasnilo:

V zgornji kodi smo ustvarili štiri nize podatkov z uporabo naključnih funkcij in jih nastavili na seznam. Sedaj smo nastavili različne barve za vsak škatlasti izris s pomočjo seznama barv in s funkcijo set_facecolor().

Nastavili smo širino črte vsake škatlaste ploskve in nastavili tudi oznake za vsako škatlasto ploskev. Nastavili smo atribut vert =0, kar pomeni, da bodo vse ploskve v horizontalnem načinu.

koliko je star pete davidson