logo

Box Plot v Pythone pomocou Matplotlib

Čo je to Box Plot?

Rámcový graf je spôsob, ako vizualizovať distribúciu údajov pomocou rámčeka a niektorých zvislých čiar. Je známy ako fúzová zápletka. Údaje možno distribuovať medzi päť kľúčových rozsahov, ktoré sú nasledovné:

    Minimum: Q1-1,5*IQR1. kvartil(Q1): 25. percentilMedián: 50. percentil3. štvrťrok(Q3): 75. percentilMaximálne: Q3+1,5*IQR

Tu IQR predstavuje InterQuartile Range ktorý začína od prvého kvartilu (Q1) a končí v treťom kvartile (Q3).

Box Plot vizualizácia

Box Plot v Pythone pomocou Matplotlib

V rámčekovom grafe sa body, ktoré sú mimo rozsahu, nazývajú odľahlé hodnoty. Môžeme vytvoriť krabicový graf údajov, aby sme určili nasledovné:

  • Počet odľahlých hodnôt v množine údajov
  • Sú údaje skreslené alebo nie
  • Rozsah údajov

Rozsah údajov od minima po maximum sa nazýva fúzy limit. V Pythone budeme používať modul pyplot modulu matplotlib, ktorý má vstavanú funkciu s názvom boxplot(), ktorá dokáže vytvoriť krabicový graf ľubovoľnej množiny údajov.

Syntax:

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

Vo funkcii boxplot() máme veľa atribútov, ktoré sa dajú použiť na vytvorenie atraktívnejšieho a úžasnejšieho krabicového grafu množiny údajov.

abecedy k číslam
    údajov: Údaje by mali byť pole alebo postupnosť polí, ktoré sa vykreslia.zárez: Tento parameter akceptuje iba boolovské hodnoty, buď true alebo false.zelená: Tento atribút prijíma boolovskú hodnotu. Ak je nastavená na hodnotu true, graf bude vertikálny. V opačnom prípade bude vodorovný.pozíciu: Prijíma pole celých čísel, ktoré definuje polohu poľa.šírky: Prijíma pole celých čísel, ktoré definuje šírku rámčeka.patch_artist: tento parameter akceptuje boolovské hodnoty, buď true alebo false, a toto je voliteľný parameter.štítky: Toto akceptuje reťazce, ktoré definujú štítky pre každý údajový bodstredná čiara: Prijíma boolovskú hodnotu a je voliteľná.objednať: Určuje poradie boxplotu.bootstrap: Prijíma celočíselnú hodnotu, ktorá špecifikuje rozsah vrúbkovaného boxplotu.

Príklad1:

Vytvoríme náhodný súbor údajov numpy poľa a vytvoríme krabicový graf.

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

Výkon:

Box Plot v Pythone pomocou Matplotlib

Vysvetlenie:

Vo vyššie uvedenom kóde sme v prvom rade importovali knižnice numpy a matplotlib do kódu. Potom sme vytvorili náhodný súbor údajov a pomocou funkcie boxplot () sme vykreslili krabicový graf.

Príklad2:

V tom istom súbore môžeme vytvoriť viacero krabicových grafov súčasne.

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

Výkon:

Box Plot v Pythone pomocou Matplotlib

Vysvetlenie:

Vo vyššie uvedenom kóde máme štyri súbory údajov pomocou náhodných metód numpy. Potom sme vytvorili zoznam štyroch súborov údajov a použili sme túto funkciu boxplot().

Príklad 3:

Na prispôsobenie grafu môžeme použiť niektoré atribúty funkcie 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() 

Výkon:

Box Plot v Pythone pomocou Matplotlib

Vysvetlenie:

Vo vyššie uvedenom kóde sme vytvorili štyri množiny údajov pomocou náhodných funkcií a umiestnili ich do zoznamu. Teraz sme pomocou zoznamu farieb a pomocou funkcie set_facecolor() nastavili rôzne farby pre každý blokový graf.

príkaz java if else

Nastavili sme šírku čiary každého krabicového grafu a tiež sme nastavili štítky pre každý krabicový graf. Nastavili sme atribút vert =0, čo znamená, že všetky grafy budú v horizontálnom režime.