logo

Box Plot Pythonban a Matplotlib használatával

Mi az a Box Plot?

A Box plot egy módja annak, hogy megjelenítse az adatok eloszlását egy doboz és néhány függőleges vonal használatával. Ez a bajuszos cselekmény néven ismert. Az adatok öt kulcstartomány között oszthatók el, amelyek a következők:

    Minimális: Q1-1,5*IQR1. kvartilis(Q1): 25. percentilisKözépső:50 százalékos3. negyed(Q3): 75. percentilisMaximális: Q3+1,5*IQR

Itt az IQR a Interquartilis tartomány amely az első kvartilisből (Q1) kezdődik és a harmadik kvartilisnél (Q3) ér véget.

ha rudyard kipling összefoglalóval

Box Plot vizualizáció

Box Plot Pythonban a Matplotlib használatával

A dobozdiagramban azokat a pontokat, amelyek kívül esnek a tartományon, kiugró értékeknek nevezzük. Létrehozhatjuk az adatok dobozdiagramját, hogy meghatározzuk a következőket:

  • A kiugró értékek száma egy adatkészletben
  • Az adatok torzak vagy sem
  • Az adatok tartománya

Az adatok minimumtól maximumig terjedő tartományát whisker limitnek nevezzük. A Pythonban a matplotlib modul pyplot modulját fogjuk használni, amelynek beépített boxplot() nevű függvénye van, amely bármilyen adatkészlet box plotját létrehozhatja.

Szintaxis:

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

A boxplot() függvényben sok olyan attribútumunk van, amelyek segítségével vonzóbb és lenyűgözőbb box plot-ot hozhatunk létre az adatkészletből.

    adat: Az adatoknak egy tömbnek vagy tömbsorozatnak kell lenniük, amely ábrázolásra kerül.bemetszés: Ez a paraméter csak igaz vagy hamis logikai értékeket fogad el.Zöld: Ez az attribútum logikai értéket fogad el. Ha igazra van állítva, akkor a grafikon függőleges lesz. Ellenkező esetben vízszintes lesz.pozíció: Elfogadja az egész számok tömbjét, amely meghatározza a doboz helyzetét.szélességek: Elfogadja az egész számok tömbjét, amely meghatározza a doboz szélességét.patch_artist: ez a paraméter igaz vagy hamis logikai értékeket fogad el, és ez egy opcionális paraméter.címkéket: Ez elfogadja az egyes adatpontokhoz tartozó címkéket meghatározó karakterláncokatközépvonal: Logikai értéket fogad el, és nem kötelező.rendelés: Beállítja a boxplot sorrendjét.bootstrap: Elfogadja az egész értéket, amely megadja a bemetszett boxplot tartományát.

1. példa:

Létrehozzuk a numpy tömb véletlenszerű adatkészletét, és létrehozzuk a doboz diagramot.

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

Kimenet:

Box Plot Pythonban a Matplotlib használatával

Magyarázat:

imessage játékok androidon

A fenti kódban mindenekelőtt a numpy és a matplotlib könyvtárakat importáltuk a kódba. Ezután létrehoztuk a véletlenszerű adatkészletet, és a boxplot() függvény segítségével ábrázoltuk a box plot-ot.

beillesztési python

2. példa:

Egyszerre több box plot-ot is létrehozhatunk ugyanabban a fájlban.

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

Kimenet:

Box Plot Pythonban a Matplotlib használatával

Magyarázat:

A fenti kódban négy adatkészletünk van a numpy véletlenszerű módszereit használva. Ezután elkészítettük a négy adatkészlet listáját, és ezt a belső boxplot() függvényt használjuk.

próbáld elkapni a java-t

3. példa:

A boxplot() függvény egyes attribútumait használhatjuk a plot testreszabásához.

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

Kimenet:

Box Plot Pythonban a Matplotlib használatával

Magyarázat:

A fenti kódban véletlenszerű függvények segítségével létrehoztuk a négy adatkészletet, és listába állítottuk őket. Most a színlista és a set_facecolor() függvény segítségével beállítottuk a különböző színeket az egyes box plotokhoz.

Beállítottuk az egyes dobozok vonalszélességét, és beállítottuk a címkéket is. A vert =0 attribútumot beállítottuk, ami azt jelenti, hogy az összes plot vízszintes módban lesz.