Úvod do Matplotlib v Pythonu

Matplotlib je knihovna pro vykreslování Pythonu, kterou odborníci na strojové učení většinou používají k vytváření statických a interaktivních vizualizací.

Co je Matplotlib

Mathplotlib je výtvor Johna D. Huntera v roce 2003, který byl vydán 8. května 2021 a má aktuální verzi 3.4.2.

Tato knihovna je převážně napsána v Pythonu, zatímco zbytek je napsán v objektivu C a JavaScriptu, díky čemuž je kompatibilní s platformou.

Matplotlib používá NumPy, což je numerické rozšíření Pythonu. Jeho rozšíření o NumPy přidává jeho životaschopnost jako open-source alternativa a dělá z něj lepší preferenci než MATLAB.

U aplikací Python GUI umožňuje Matplotlib vykreslování statických grafů pomocí objektově orientovaného API, se kterým je dodáván.

Uživatelé mohou použít pouze několik zapsaných řádků kódu Python k vizualizaci svých dat pomocí různých grafů, včetně bodových grafů, histogramů, sloupcových grafů, koláčových grafů, liniových grafů a krabicových grafů.

Matplotlib můžete použít k vytváření grafů v prostředích, jako je Python shell, Jupyter notebook,
Jupyter lab a také pomocí Pycharm nebo Anaconda a na webových aplikačních serverech jako Flask a Django napříč různými platformami.

Stejně jako v MATLABu můžete rozsáhle ovládat vykreslování z hlediska písem, čar, barev a stylů.

Po krátkém představení knihovny Matplotib v Pythonu se podívejme, jak ji můžeme nastavit v našich systémech.

Nastavení prostředí Matplotlib

Jako každý jiný balíček a knihovnu Pythonu můžete nainstalovat předkompilovanou knihovnu Matplotlib a její balíčky napříč všemi operačními systémy pomocí správce balíčků pip.

Samozřejmě to vyžaduje, abyste nejprve na váš systém nainstalovali Python a balíček pip.

Následující příkazy zobrazí verzi Pythonu a pip, abyste potvrdili, zda jsou tyto nástroje již nainstalovány.

Zkontrolujte, zda je nainstalován Python

Python --version

Zkontrolujte, zda je nainstalován pip

pip -V

Nainstalujte Mathplotlib

Níže uvedený příkaz nainstaluje balíček Matplotlib z Python Package Index (PyPI).

python -m pip install matplotlib

Tento příkaz stáhne a nainstaluje příslušné balíčky Matplotlib. Po dokončení instalace byste měli vidět zprávu o úspěšné instalaci.

Chcete-li se ujistit, že Matplotlib byl úspěšně nainstalován, zadejte následující příkaz, který zobrazí verzi Matplotlib na příkazovém řádku.

import matplotlib
matplotlib.__version__

Vývojáři, kteří chtějí nainstalovat nekompilovaný balíček Matplotlib, musí mít kromě závislostí, instalačních skriptů, konfiguračních souborů a záplat přístup ke správnému kompilátoru ve svém systému.

Tato konkrétní nekompilovaná instalace Matplolibu však může být komplikovaná, zejména pro nováčky Matplotlib. Proč tedy nepoužít jednořádkový příkaz k instalaci knihovny během několika sekund?🤔

Po instalaci Matplotlib importujte balíček do svého prostředí, abyste získali přístup k jeho utilitám.

Možnosti vykreslování Matplotlib

Matplotlib poskytuje četné možnosti vykreslování pro vizualizaci dat. Umožňuje také přizpůsobení výkresů poskytnutím různých témat, barev a možností palet, které může uživatel použít k manipulaci s výkresy.

  Musíte zrušit síť WWE?

Mezi tyto možnosti vykreslování patří:

#1. Sloupcové grafy

Sloupcové grafy, známé jako sloupcové grafy, jsou vhodnou možností pro vizualizaci kvantitativního srovnání hodnot v rámci stejné kategorie.

Matplotlib představuje tento graf pomocí obdélníkových pruhů, kde jejich délky a výšky představují jejich proporcionální hodnoty. Tyče mohou být horizontální nebo vertikální.

Matplotlib používá svou funkci plt.bar() k vytvoření sloupcového grafu.

Navíc můžete použít více funkcí pro manipulaci s tímto grafem. Například funkce plt.xlabel() a plt.ylabel() označují osy x a y grafu.

Funkce plt.title() vám také umožňuje pojmenovat váš výkres, zatímco funkce plt.savefig() uloží výkres. Funkce plot.show(), která je nejdůležitější, zobrazuje graf.

#2. Koláčové parcely

Proporcionální rozložení položek v rámci stejné kategorie můžete vizualizovat pomocí kruhového statistického grafu, kterému říkáme koláčové grafy.

Koláčové grafy zobrazují data v procentuální podobě. Celá plocha grafu odpovídá procentuálnímu podílu celých dat, zatímco jednotlivé výsečové řezy představují části procentuálního podílu dat.

Matplotlib používá funkci plt.pie(), která kreslí a upravuje parametry koláčového grafu.
Při vykreslování koláčových grafů je užitečných více parametrů, jako je autopct, které tisknou hodnotu koláčového grafu až na 1 desetinné místo.

Obchodní organizace považují koláčové grafy za užitečné při prezentaci relevantních informací, jako jsou operace, prodeje nebo zdroje.

#3. Histogram

Histogram zobrazuje číselné rozložení dat. K rozdělení dat do samostatných sekcí používá spojité intervaly.

Hlavním rozdílem mezi histogramem a sloupcovým grafem je typ dat, které zpracovávají. Zatímco histogramy zpracovávají kontinuální datový typ, sloupcové grafy místo toho zpracovávají kategorická data.

Matplotlib používá funkci hist(), která k vytvoření histogramu používá pole náhodných nebo definovaných hodnot.

#4. Čárové parcely

Tyto grafy jsou užitečné při zobrazení vztahu mezi dvěma hodnotami dat, které definujeme jako numerické a kategorické, na základě X a Y.

Čárové grafy jsou významné při sledování změn hodnot dat v průběhu určitého času.

#5. Bodové zápletky

Bodové grafy poukazují na vztah, včetně korelace mezi proměnnými v datech. Je také užitečné při identifikaci odlehlých hodnot.

Bodové grafy používají tečky k znázornění vztahu datových proměnných a toho, jak může změna jedné proměnné ovlivnit jinou.

Jak vytvořit grafy v Matplotlib

Matplotlib používá různé funkce k vytváření různých grafů. K vytvoření grafu také používá velmi málo řádků kódu.

Níže vidíme, jak vytvořit různé možnosti vykreslování pomocí různých funkcí v Matplotlib.

#1. Barový pozemek v Matplotlib

Sloupcové grafy, jak je vysvětleno výše, zobrazují kategorie dat pomocí sloupců a os, které představují srovnání kategorií na jedné ose a odpovídajících hodnot kategorií na druhé ose.

Funkce bar() v Matplotlib používá různá rozložení argumentů k popisu rozložení pruhů, jak je znázorněno níže.

plt.bar(x, y, height, width, bottom, align)

Parametry x a y představují hodnoty souřadnic x a souřadnic y sloupce v grafu. Parametr width představuje šířku pruhu, zatímco parametr height představuje výšku pruhu.

Představme si například počet psů a koček ve zvířecím útulku s názvem x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Výstup:

  Jak fungují VR sluchátka bez akčního tlačítka?

Výstup Bar Plot v Mathplotlib

Stejně jako v našem příkladu výše můžete dále určit barvu pruhů pomocí atributu color. Navíc plt.xlabel a p.ylabel pojmenovávají osy x a y, zatímco plt.title pojmenovává graf.

#2. Jak vytvořit koláčový pozemek

Matplotlib používá funkci pie() dodávanou s modulem pyplot k vykreslení koláčového grafu.
Funkce představuje data k vykreslení ve formě pole.

Syntax:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Parametr barvy nastavuje barvu plátků koláče. K určení barvy pro každý řez můžete použít pole hodnot.

Chcete-li dále zahrnout podrobnosti o každém řezu v koláči, argument autopct přidává numerická procenta, která každý řez představuje, pomocí formátování Python’s String. Rozložení jako argument přijímá pole hodnot začínajících od 0,1, které definují vzdálenost řezu od středu koláče.

Vytvořme výsečový graf, který zobrazuje zdroje v procentech přidělených pro konkrétní projekt.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Výstup:

Výstup Pie plotu v Mathplotlib

Výše uvedený graf zobrazuje výsečový graf se čtyřmi řezy označenými w, x, y, resp. Hodnoty rozložení definují, jak dále od středu koláče budou řezy umístěny.

Z výše uvedeného grafu je x dále, protože jeho rozložená hodnota je větší než ostatní. Atribut stínu přidává stín do výsečového grafu jako na obrázku, zatímco autopct nastavuje relativní procento k celému výsečovému, které každý řez představuje.

#3. Vytvoření grafu histogramu

U histogramu použijeme řadu intervalů pro znázornění rozsahu daných hodnot na ose x.
Na druhé straně osa y bude představovat informace o frekvenci.

Na rozdíl od jiných grafů vyžaduje vykreslování histogramu v Matplotlib některé předem definované kroky, které musíte při vytváření grafu provést.

Mezi tyto kroky patří:

  • Vytvořte zásobník rozsahů ze sady datových hodnot, které máte. Můžete použít funkci np.random.normal(), která vám může vygenerovat náhodné hodnoty.
  • Pomocí řady intervalů rozdělte hodnoty do rozsahu hodnot.
  • Spočítejte hodnoty spadající do každého konkrétního intervalu.
  • Nyní použijte funkci matplotlib.pyplot.hist() k vytvoření histogramu.
  • Funkce hist() má několik parametrů, včetně:

    x – Představuje posloupnost pole

    bins – Toto je volitelný parametr, který představuje nepřekrývající se intervaly proměnných, které mohou obsahovat celá čísla nebo posloupnost řetězců.

    rozsah – Definuje horní a dolní rozsah přihrádek

    zarovnat – Tento parametr řídí zarovnání histogramu. Ať už vlevo, vpravo nebo uprostřed.

    barva – Definuje barvu pruhů.

    rwidth – Nastavuje relativní šířku sloupců v histogramu k šířce přihrádky.

    log – log parametr definuje měřítko log na ose histogramu.

    Následující příklad zobrazuje histogram s definovanými hodnotami.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Výstup:

    Výstup grafu histogramu v Mathplotlib

    #4. Čárový graf v Matplotlib

    Matplotlib používá svou podknihovnu nazvanou pyplot , která přichází s různými funkcemi, které pomáhají s její implementací.

    Používáme funkci plot(), což je obecná funkce dodávaná s pyplot k vykreslování liniových grafů a různých dalších typů liniových grafů, včetně zakřivených grafů a více liniových grafů. Vytváření těchto různých druhů grafů závisí na hodnotách, které předáte na osu y.

      Jak nahrávat bez držení tlačítka ve Snapchatu

    Při vykreslování importujte matplotlib.pyplot a Numpy, které kreslí grafy. Metoda plot(x,y) vytváří čárový graf předáním náhodných hodnot argumentům x a y.

    Navíc můžete předat proměnnou label, která označí graf. Funkce title dále pojmenovává název grafu, zatímco funkce xlabel a ylabel pojmenovávají osy. Nakonec funkce show() zobrazí graf.

    Například:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Výsledek:

    Výstup čárového grafu v Mathplotlib

    Atribut np.linspace vrací na grafu sadu rovnoměrně rozložených čísel v určitém intervalu pro hodnoty x. Tím se vytvoří pole 10 hodnot v rozsahu 0 a 5. Hodnoty y jsou vytvořeny z rovnice, která používá odpovídající hodnoty x.

    Vytváření bodových grafů

    Matplotlib používá k vytvoření tohoto grafu metodu scatter().
    Tato metoda má následující parametry.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Parametry x_axis_data a y_axis_data nemohou zůstat prázdné, na rozdíl od ostatních parametrů, které mohou být volitelné a mají hodnotu None. Zatímco argument x_axis_data definuje pole dat pro osu x, argument y_axis_data nastavuje pole dat pro osu y.

    Příklad bodového grafu v matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Jeho výstup bude vypadat takto:

    Výstup bodového grafu v Mathplotlib

    Co je subplot() v matplotlib

    Funkci subplot() lze použít k vykreslení více grafů na jednom obrázku Matplotlib. To umožňuje prohlížení a porovnání více grafů na obrázku.

    Tato funkce vrátí n-tici se třemi argumenty; řádky a sloupce jako první a druhý argument a index aktuálního grafu jako třetí argument.

    Řádky a sloupce jasně definují rozložení Matplotlib.

    Proto například plt.subplot(2, 1, 1) vykreslí obrázek Matplotlib se dvěma řádky a jedním sloupcem a tento graf bude prvním grafem.

    Na druhé straně plt.subplot(2, 1, 2) zobrazí druhý graf se dvěma řádky a jedním sloupcem.

    Vykreslením těchto dvou grafů dojde k jejich vytvoření nad sebou, jako v příkladu níže.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    Výstup výše uvedeného příkladu bude vypadat jako na obrázku níže.

    Na jiném příkladu použijeme funkci subplot k vykreslení dvou obrazců s jedním řádkem a dvěma sloupci. Tím se zobrazí grafy vedle sebe.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    Výše uvedený příklad zobrazí následující výsledek.

    No, to bylo zajímavě interaktivní, nemyslíte?😃

    Závěrečná slova

    Matplotlib je skvěle používaná vizualizační knihovna v Pythonu. Jeho interaktivita a schopnost snadného použití i pro začátečníky z něj činí ještě lepší nástroj pro vykreslování v Pythonu.

    Tento článek se zabýval příklady různých grafů, které mohou funkce dodávané s Matplotlib vytvořit, včetně koláčových grafů, sloupcových grafů, histogramů a rozptylových grafů.

    Python má samozřejmě několik dalších knihoven, které mohou odborníci na strojové učení a datoví vědci použít k vytváření vizualizací.

    Můžete prozkoumat více grafů, které můžete vytvořit pomocí Matplotlib, a jaké funkce použijete k vytvoření grafu.

    Veselé spiknutí!📉📊