logo

Box Plot Pythonissa käyttämällä Matplotlibiä

Mikä on Box Plot?

Laatikkokaavio on tapa visualisoida tietojen jakautuminen käyttämällä laatikkoa ja joitain pystysuoraa viivaa. Se tunnetaan viiksijuona. Tiedot voidaan jakaa viiden avainalueen välillä, jotka ovat seuraavat:

    Minimi: Q1-1,5*IQR1. kvartiili(Q1): 25. prosenttipisteMediaani:50 prosenttipiste3. neljännes(Q3): 75. prosenttipisteEnimmäismäärä: Q3+1,5*IQR

Tässä IQR edustaa InterQuartile Range joka alkaa ensimmäisestä kvartiilista (Q1) ja päättyy kolmanteen kvartiiliin (Q3).

Box Plot visualisointi

Box Plot Pythonissa käyttämällä Matplotlibiä

Laatikkokaaviossa niitä pisteitä, jotka ovat alueen ulkopuolella, kutsutaan outliersiksi. Voimme luoda tiedoista laatikkokaavion määrittääksemme seuraavat:

  • Tietojoukon poikkeamien määrä
  • Onko tiedot vinossa vai ei
  • Tietojen alue

Tietojen vaihteluväliä minimistä maksimiin kutsutaan whisker-rajaksi. Pythonissa käytämme matplotlib-moduulin pyplot-moduulia, jossa on sisäänrakennettu funktio nimeltä boxplot(), joka voi luoda minkä tahansa tietojoukon laatikkokaavion.

Syntaksi:

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

Boxplot()-funktiossa meillä on paljon attribuutteja, joiden avulla voidaan luoda houkuttelevampi ja hämmästyttävä laatikkokuvaaja tietojoukosta.

    tiedot: Tietojen tulee olla taulukko tai taulukkojen sarja, joka piirretään.lovi: Tämä parametri hyväksyy vain Boolen arvot, joko tosi tai epätosi.Vihreä: Tämä attribuutti hyväksyy Boolen arvon. Jos se on tosi, kaavio on pystysuora. Muuten se on vaakasuora.asema: Se hyväksyy kokonaislukutaulukon, joka määrittää laatikon sijainnin.leveydet: Se hyväksyy kokonaislukutaulukon, joka määrittää laatikon leveyden.patch_artist: tämä parametri hyväksyy Boolen arvot, joko tosi tai epätosi, ja tämä on valinnainen parametri.tarrat: Tämä hyväksyy merkkijonot, jotka määrittävät kunkin datapisteen tunnisteetkeskiviiva: Se hyväksyy loogisen arvon, ja se on valinnainen.Tilaus: Se määrittää boxplotin järjestyksen.bootstrap: Se hyväksyy kokonaislukuarvon, joka määrittää lovetun boxplotin alueen.

Esimerkki1:

Luomme numpy-taulukon satunnaisen tietojoukon ja luomme laatikkokaavion.

edith mack hirsch
 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() 

Lähtö:

Box Plot Pythonissa käyttämällä Matplotlibiä

Selitys:

Yllä olevaan koodiin olemme ensinnäkin tuoneet koodissa olevat numpy- ja matplotlib-kirjastot. Sitten loimme satunnaisen tietojoukon ja piirtimme laatikkokaavion käyttämällä boxplot()-funktiota.

Esimerkki2:

Voimme luoda useita laatikkokaavioita samanaikaisesti samaan tiedostoon.

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

Lähtö:

Box Plot Pythonissa käyttämällä Matplotlibiä

Selitys:

Yllä olevassa koodissa meillä on neljä tietojoukkoa käyttäen satunnaisia ​​numpy-menetelmiä. Sitten olemme luoneet luettelon neljästä tietojoukosta ja käytämme tätä boxplot() -funktiota.

Esimerkki 3:

Voimme käyttää joitain boxplot()-funktion attribuutteja kaavion mukauttamiseen.

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

Lähtö:

Box Plot Pythonissa käyttämällä Matplotlibiä

Selitys:

Yllä olevassa koodissa olemme luoneet neljä tietojoukkoa satunnaisten funktioiden avulla ja asettaneet ne luetteloon. Nyt olemme asettaneet eri värit jokaiselle laatikkokuvaajalle väriluettelon ja funktion set_facecolor() avulla.

Olemme määrittäneet kunkin laatikkokuvaajan viivan leveyden ja myös kunkin laatikkokuvaajan tarrat. Olemme asettaneet attribuutin vert =0, mikä tarkoittaa, että kaikki kaaviot ovat vaakatilassa.