logo

Box Plot programmā Python, izmantojot Matplotlib

Kas ir Box Plot?

Lodziņa diagramma ir veids, kā vizualizēt datu sadalījumu, izmantojot lodziņu un dažas vertikālas līnijas. Tas ir pazīstams kā ūsu sižets. Datus var sadalīt starp pieciem atslēgu diapazoniem, kas ir šādi:

    Minimums: Q1-1,5*IQR1. kvartile(Q1): 25. procentileMediāna:50. procentile3. ceturksnis(Q3): 75. procentileMaksimums: Q3+1,5*IQR

Šeit IQR apzīmē Interkvartiļu diapazons kas sākas no pirmās kvartiles (Q1) un beidzas trešajā kvartilē (Q3).

Box Plot vizualizācija

Box Plot programmā Python, izmantojot Matplotlib

Lodziņā tos punktus, kas atrodas ārpus diapazona, sauc par izņēmumiem. Mēs varam izveidot datu lodziņu, lai noteiktu:

  • Ārējo vērtību skaits datu kopā
  • Vai dati ir šķībi vai nav
  • Datu diapazons

Datu diapazonu no minimālā līdz maksimālajam sauc par ūsu robežu. Programmā Python mēs izmantosim matplotlib moduļa pyplot moduli, kurā ir iebūvēta funkcija boxplot(), kas var izveidot jebkuras datu kopas lodziņu.

Sintakse:

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

Funkcijā boxplot() mums ir daudz atribūtu, kurus var izmantot, lai izveidotu pievilcīgāku un pārsteidzošāku datu kopas lodziņu.

kaudze java
    datus: datiem ir jābūt masīvam vai masīvu secībai, kas tiks uzzīmēta.iecirtums: šis parametrs pieņem tikai Būla vērtības — patiesas vai nepatiesas.Zaļš: Šis atribūts pieņem Būla vērtību. Ja tas ir iestatīts uz patiesu, grafiks būs vertikāls. Pretējā gadījumā tas būs horizontāls.pozīciju: tā pieņem veselu skaitļu masīvu, kas nosaka lodziņa pozīciju.platumi: tas pieņem veselu skaitļu masīvu, kas nosaka lodziņa platumu.patch_artist: šis parametrs pieņem Būla vērtības — patiesas vai nepatiesas, un tas ir neobligāts parametrs.etiķetes: tiek pieņemtas virknes, kas nosaka katra datu punkta etiķetesviduslīnija: tā pieņem Būla vērtību, un tā nav obligāta.pasūtījums: iestata boxplot secību.bootstrap: tā pieņem vesela skaitļa vērtību, kas norāda robainā lodziņa diapazonu.

1. piemērs:

Mēs izveidosim numpy masīva nejaušu datu kopu un izveidosim lodziņu.

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

Izvade:

Box Plot Python, izmantojot Matplotlib

Paskaidrojums:

Iepriekš minētajā kodā, pirmkārt, esam importējuši kodā esošās numpy un matplotlib bibliotēkas. Pēc tam mēs izveidojām nejaušu datu kopu un uzzīmējām lodziņu, izmantojot funkciju boxplot ().

2. piemērs:

Mēs varam izveidot vairākus lodziņus vienlaicīgi vienā failā.

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

Izvade:

Box Plot programmā Python, izmantojot Matplotlib

Paskaidrojums:

Iepriekš minētajā kodā mums ir četras datu kopas, izmantojot nejaušas numpy metodes. Pēc tam mēs esam izveidojuši četru datu kopu sarakstu un izmantojam šo boxplot() funkciju.

3. piemērs:

Mēs varam izmantot dažus funkcijas boxplot() atribūtus, lai pielāgotu diagrammu.

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

Izvade:

Box Plot programmā Python, izmantojot Matplotlib

Paskaidrojums:

Iepriekš minētajā kodā esam izveidojuši četras datu kopas, izmantojot nejaušas funkcijas, un iestatījušas tās sarakstā. Tagad mēs esam iestatījuši dažādas krāsas katram lodziņam, izmantojot krāsu sarakstu un izmantojot funkciju set_facecolor().

Mēs esam iestatījuši katra lodziņa parauglaukuma līnijas platumu, kā arī katra lodziņa parauglaukuma etiķetes. Mēs esam iestatījuši atribūtu vert =0, kas nozīmē, ka visi paraugi būs horizontālā režīmā.