En introduktion till Matplotlib i Python

Matplotlib är ett Python-ritningsbibliotek som maskininlärningsexperter mest använder för att skapa statiska och interaktiva visualiseringar.

Vad är Matplotlib

Mathplotlib är en skapelse av John D. Hunter 2003 som släpptes den 8 maj 2021 och har en aktuell version av 3.4.2.

Detta bibliotek är huvudsakligen skrivet i Python, medan resten är skrivet i C-objektiv och JavaScript, vilket gör det plattformskompatibelt.

Matplotlib använder NumPy, som är en Python numerisk förlängning. Dess förlängning med NumPy lägger till dess lönsamhet som ett alternativ med öppen källkod och gör det till en bättre preferens än MATLAB.

För Python GUI-applikationer tillåter Matplotlib plottning av statiska plotter på det med hjälp av det objektorienterade API som det medföljer.

Användare kan bara använda ett fåtal skrivna rader med Python-kod för att visualisera sina data med hjälp av olika plotter, inklusive spridningsdiagram, histogram, stapeldiagram, cirkeldiagram, linjediagram och boxplots.

Du kan använda Matplotlib för att skapa plotter i miljöer inklusive Python-skal, Jupyter-anteckningsbok,
Jupyter lab och även med Pycharm eller Anaconda och på webbapplikationsservrar som Flask och Django över olika plattformar.

Precis som i MATLAB kan du i stor utsträckning styra plotterna när det gäller typsnitt, linjer, färger och stilar.

Efter den korta introduktionen av Matplotib-biblioteket i Python, låt oss se hur vi kan ställa in det i våra system.

Konfigurera Matplotlib-miljö

Som alla andra Python-paket och bibliotek kan du installera det förkompilerade Matplotlib-biblioteket och dess paket över alla operativsystem med pip-pakethanteraren.

Naturligtvis kräver det att du först installerar Python och pip-paketet på ditt system.

Följande kommandon visar versionen av Python och pip för att bekräfta om dessa verktyg redan är installerade.

Kontrollera om Python är installerat

Python --version

Kontrollera om pip är installerad

pip -V

Installera Mathplotlib

Kommandot nedan installerar Matplotlib-paketet från Python Package Index (PyPI).

python -m pip install matplotlib

Detta kommando laddar ner och installerar relevanta paket av Matplotlib. Du bör se ett framgångsrikt installationsmeddelande efter att installationen är klar.

För att vara säker på att Matplotlib har installerats, skriv följande kommando, som visar Matplotlibs version i din kommandotolk.

import matplotlib
matplotlib.__version__

Utvecklare som vill installera det okompilerade Matplotlib-paketet måste ha tillgång till rätt kompilator i sitt system, förutom beroenden, installationsskript, konfigurationsfiler och patchar.

Denna speciella okompilerade Matplolib-installation kan dock vara komplicerad, speciellt för Matplotlib-nybörjare. Därför, varför inte bara använda ett enradskommando för att installera biblioteket på några sekunder?🤔

Efter Matplotlibs installation, importera paketet till din miljö för att komma åt dess verktyg.

Matplotlib plotting alternativ

Matplotlib tillhandahåller många plottningsalternativ för att visualisera data. Det tillåter också anpassning av plotterna genom att tillhandahålla olika teman, färger och palettalternativ som användaren kan använda för att manipulera plotterna.

Dessa plottningsalternativ inkluderar:

#1. Stapeldiagram

Stapeldiagram, känt som stapeldiagram, är ett lämpligt alternativ för att visualisera en kvantitativ jämförelse av värden inom samma kategori.

Matplotlib representerar denna plot med rektangulära staplar där deras längder och höjder representerar deras proportionella värden. Stängerna kan antingen vara horisontella eller vertikala.

Matplotlib använder sin plt.bar() funktion för att skapa stapeldiagrammet.

Dessutom kan du använda fler funktioner för att manipulera denna plot. Till exempel, funktionerna plt.xlabel() och plt.ylabel() betecknar grafens x- respektive y-axlar.

Funktionen plt.title() låter dig också ge en titel till din tomt, medan funktionen plt.savefig() sparar plotten. Funktionen plot.show(), som är den viktigaste, visar plotten.

#2. Pajtomter

Du kan visualisera objektens proportionella fördelning inom samma kategori med hjälp av ett cirkulärt statistiskt diagram som vi kallar cirkeldiagram.

Cirkeldiagram visar data i procentform. Diagrammets hela område motsvarar hela datas procentandel, medan de enskilda pajskivorna representerar delar av datas procentandel.

Matplotlib använder funktionen plt.pie() som ritar och justerar cirkeldiagrammets parametrar.
Fler parametrar som autopkten som skriver ut cirkeldiagrammets värde upp till 1 decimal är användbara för att plotta cirkeldiagram.

Företagsorganisationer tycker att cirkeldiagram är användbara för att presentera relevant information som drift, försäljning eller resurser.

#3. Histogram

Ett histogram visar numerisk datafördelning. Den använder kontinuerliga intervall för att dela upp data i distinkta sektioner.

Den största skillnaden mellan ett histogram och ett stapeldiagram är vilken typ av data de hanterar. Medan histogram hanterar den kontinuerliga datatypen, hanterar stapeldiagram kategoriska data istället.

Matplotlib använder hist()-funktionen som använder en uppsättning slumpmässiga eller definierade värden för att skapa histogrammet.

#4. Linjetomter

Dessa diagram är användbara för att visa sambandet mellan två datavärden som vi definierar som numeriska och kategoriska, på X- och Y-basis.

Linjediagram är viktiga för att spåra förändringen av datavärdena under en viss tid.

#5. Spridningsdiagram

Spridningsdiagram visar sambandet, inklusive korrelationen mellan variablerna i data. Det är också användbart för att identifiera extremvärden.

Spridningsdiagram använder punkter för att representera förhållandet mellan datavariablerna och hur en förändring i en variabel kan påverka en annan.

Hur man skapar tomter i Matplotlib

Matplotlib använder olika funktioner för att skapa olika plotter. Den använder också väldigt få rader kod för att skapa handlingen.

Nedan ser vi hur man skapar de olika plotalternativen med hjälp av olika funktioner i Matplotlib.

#1. Bartomt i Matplotlib

Stapeldiagram, som förklarats ovan, visar datakategorier med staplar och axlar som representerar en jämförelse av kategorier på en axel och motsvarande värden för kategorierna på den andra axeln.

Bar()-funktionen i Matplotlib använder olika argumentlayouter för att beskriva staplarnas layout, som visas nedan.

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

X- och y-parametrarna representerar x-koordinatvärdena och y-koordinatvärdena för stapeln i diagrammet. Breddparametern representerar stapelns bredd, medan höjdparametern representerar stapelns höjd.

Låt oss till exempel representera antalet hundar och katter i ett djurhem som heter 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)

Produktion:

Utdata från Bar Plot i Mathplotlib

Som i vårt exempel ovan kan du ytterligare specificera färgen på staplarna med hjälp av färgattributet. Dessutom namnger plt.xlabel och p.ylabel x- respektive y-axlarna medan plt.title namnger handlingen.

#2. Hur man skapar en pajtomt

Matplotlib använder funktionen pie() som följer med pyplotmodulen för att rita ett cirkeldiagram.
Funktionen representerar data som ska plottas i arrayform.

Syntax:

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

Parametern färger ställer in färgen på pajskivorna. Du kan använda en matris med värden för att ange en färg för varje segment.

För att ytterligare inkludera detaljer om varje segment i kakan lägger autopct-argumentet till de numeriska procentsatserna som varje segment representerar med Pythons strängformateringsnotation. Exploderingen som ett argument accepterar en matris med värden som börjar från 0,1 för att definiera skivans avstånd från mitten av kakan.

Låt oss rita ett cirkeldiagram som visar resurser i procent tilldelade för ett visst 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() 

Produktion:

Utdata från Pie-plot i Mathplotlib

Plottet ovan visar ett cirkeldiagram med fyra skivor märkta w, x, y respektive z. Exploderingsvärdena definierar hur längre bort från mitten av pajen skivorna ska placeras.

Från diagrammet ovan är x längre eftersom dess exploderingsvärde är större än resten. Shadow-attributet lägger till en skugga till pajdiagrammet som i bilden medan autopct anger den relativa procentandelen för hela pajen som varje skiva representerar.

#3. Skapa en histogramplot

Med ett histogram kommer vi att använda en serie intervall för att representera intervallet för de givna värdena på x-axeln.
Y-axeln, å andra sidan, kommer att representera frekvensinformationen.

Till skillnad från de andra plotten kräver plottning av ett histogram i Matplotlib några fördefinierade steg som du måste följa för att skapa plotten.

Dessa steg inkluderar:

  • Skapa ett fack med intervall från den uppsättning datavärden du har. Du kan använda funktionen np.random.normal() som kan generera slumpmässiga värden åt dig.
  • Använd en serie intervall och fördela värden i ett värdeintervall.
  • Räkna värdena som faller inom varje särskilt intervall.
  • Använd nu matplotlib.pyplot.hist()-funktionen för att skapa histogrammet.
  • Hist()-funktionen tar in flera parametrar, inklusive:

    x – Detta representerar arraysekvensen

    bins – Detta är en valfri parameter som representerar icke-överlappande intervall av variabler som kan innehålla heltal eller en strängsekvens.

    intervall – Det definierar det övre och nedre intervallet för soporna

    align – Denna parameter styr histogrammets justering. Oavsett om det är vänster, höger eller mitten.

    färg – Den definierar färgen på staplarna.

    rwidth – Den ställer in den relativa bredden på staplarna i histogrammet till den för facket.

    log – log parameter definierar en log skala på axeln av ett histogram.

    Följande exempel plottar ett histogram med de definierade värdena.

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

    Produktion:

    Utdata från histogramplot i Mathplotlib

    #4. Linjetomt i Matplotlib

    Matplotlib använder sitt underbibliotek som heter pyplot , som kommer med olika funktioner som hjälper till med implementeringen.

    Vi använder funktionen plot(), som är en generisk funktion som följer med pyplot för att plotta linjeplotterna och olika andra typer av linjeplots, inklusive krökta plots och multipla linjeplots. Att skapa dessa olika typer av plotter beror på de värden du skickar till y-axeln.

    När du plottar, importera matplotlib.pyplot och Numpy, som ritar diagrammen. Metoden plot(x,y) skapar linjediagrammet genom att skicka slumpmässiga värden till x- och y-argumenten.

    Dessutom kan du skicka en etikettvariabel som etiketterar plotten. Titelfunktionen namnger vidare handlingens titel, medan funktionerna xlabel och ylabel namnger axlarna. Slutligen visar funktionen show() plotten.

    Till exempel:

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

    Resultat:

    Utdata av linjediagram i Mathplotlib

    Attributet np.linspace returnerar på plotten, en uppsättning jämnt fördelade tal över ett visst intervall för x-värdena. Detta kommer att skapa en matris med 10 värden i intervallet 0 och 5. Y-värdena skapas från ekvationen som använder motsvarande värden på x.

    Skapa spridningsdiagram

    Matplotlib använder metoden scatter() för att skapa denna plot.
    Denna metod tar in följande parametrar.

    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) 

    Parametrarna x_axis_data och y_axis_data kan inte lämnas tomma, till skillnad från resten av parametrarna som kan vara valfria och har None som värde. Medan argumentet x_axis_data definierar en array av data för x-axeln, ställer y_axis_data in en array av data för y-axeln.

    Ett exempel på ett spridningsdiagram i 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()

    Dess utdata kommer att gilla:

    Utdata av spridningsdiagram i Mathplotlib

    Vad är subplot() i matplotlib

    Funktionen subplot() kan användas för att rita flera plotter på en enda Matplotlib-figur. Detta möjliggör visning och jämförelse av flera plotter i figuren.

    Denna funktion kommer att returnera en tupel med tre argument; rader och kolumner som första respektive andra argument, och det aktuella plottets index som det tredje argumentet.

    Raderna och kolumnerna definierar tydligt Matplotlibs layout.

    Därför kommer plt.subplot(2, 1, 1) till exempel att plotta en Matplotlib-figur med två rader och en kolumn, och denna plot kommer att vara den första plotten.

    Å andra sidan visar plt.subplot(2, 1, 2) en andra plot med två rader och en kolumn.

    Att rita dessa två plotter kommer att skapa dem ovanpå varandra, som i exemplet nedan.

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

    Utdata från exemplet ovan kommer att se ut som bilden nedan.

    Med hjälp av ett annat exempel, låt oss använda subplotfunktionen för att plotta två figurer med en rad och två kolumner. Detta kommer att visa plotterna sida vid sida.

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

    Exemplet ovan visar följande resultat.

    Tja, det var intressant interaktivt, tycker du inte det?😃

    Slutord

    Matplotlib är ett välkänt visualiseringsbibliotek i Python. Dess interaktivitet och förmåga för enkel användning även för nybörjare gör det till ett ännu bättre verktyg att använda för att plotta i Python.

    Den här artikeln täckte exempel på de olika plotten som funktioner som följer med Matplotlib kan skapa, inklusive cirkeldiagram, stapeldiagram, histogram och spridningsdiagram.

    Naturligtvis har Python flera andra bibliotek som maskininlärningsexperter och datavetare kan använda för att skapa visualiseringar.

    Du kan utforska fler plotter du kan skapa med Matplotlib och vilka funktioner du kommer att använda för att skapa plotten.

    Lycka till med planeringen!📉📊