En introduksjon til Matplotlib i Python

Matplotlib er et Python-plottingbibliotek som maskinlæringseksperter stort sett bruker for å lage statiske og interaktive visualiseringer.

Hva er Matplotlib

Mathplotlib er en kreasjon av John D. Hunter i 2003 som ble utgitt 8. mai 2021 og har en gjeldende versjon av 3.4.2.

Dette biblioteket er hovedsakelig skrevet i Python, mens resten er skrevet i C-objektiv og JavaScript, noe som gjør det plattformkompatibelt.

Matplotlib bruker NumPy, som er en Python numerisk utvidelse. Utvidelsen med NumPy legger til levedyktigheten som et åpen kildekode-alternativ og gjør det til en bedre preferanse enn MATLAB.

For Python GUI-applikasjoner tillater Matplotlib plotting av statiske plott på den ved å bruke den objektorienterte APIen den kommer med.

Brukere kan bare bruke noen få skrevne linjer med Python-kode for å visualisere dataene sine ved hjelp av forskjellige plott, inkludert spredningsplott, histogrammer, søylediagrammer, sektordiagrammer, linjeplott og boksplott.

Du kan bruke Matplotlib til å lage plott i miljøer, inkludert Python-skall, Jupyter-notebook,
Jupyter lab og også ved å bruke Pycharm eller Anaconda og på webapplikasjonsservere som Flask og Django på tvers av ulike plattformer.

Som i MATLAB kan du i stor grad kontrollere plottene når det gjelder fonter, linjer, farger og stiler.

Etter den korte introduksjonen av Matplotib-biblioteket i Python, la oss se hvordan vi kan sette det opp i systemene våre.

Sette opp Matplotlib-miljøet

Som alle andre Python-pakker og -biblioteker, kan du installere det forhåndskompilerte Matplotlib-biblioteket og dets pakker på tvers av alle operativsystemer med pip-pakkebehandlingen.

Selvfølgelig krever det at du først installerer Python og pip-pakken på systemet ditt.

Følgende kommandoer viser versjonen av Python og pip for å bekrefte om disse verktøyene allerede er installert.

Sjekk om Python er installert

Python --version

Sjekk om pip er installert

pip -V

Installer Mathplotlib

Kommandoen nedenfor installerer Matplotlib-pakken fra Python Package Index (PyPI).

python -m pip install matplotlib

Denne kommandoen laster ned og installerer de relevante pakkene til Matplotlib. Du skal se en vellykket installasjonsmelding etter at installasjonen er fullført.

For å være sikker på at Matplotlib har blitt installert, skriv inn følgende kommando, som vil vise Matplotlibs versjon i ledeteksten.

import matplotlib
matplotlib.__version__

Utviklere som ønsker å installere den ukompilerte Matplotlib-pakken må ha tilgang til riktig kompilator i systemet sitt, i tillegg til avhengigheter, oppsettskript, konfigurasjonsfiler og patcher.

Imidlertid kan denne spesielle ukompilerte Matplolib-installasjonen være komplisert, spesielt for Matplotlib-nybegynnere. Derfor, hvorfor ikke bare bruke en kommando på én linje for å installere biblioteket på sekunder?🤔

Etter Matplotlibs installasjon, importer pakken til miljøet ditt for å få tilgang til verktøyene.

Matplotlib plotting alternativer

Matplotlib tilbyr en rekke plottealternativer for å visualisere data. Den tillater også tilpasning av plottene ved å tilby forskjellige temaer, farger og palettalternativer som brukeren kan bruke til å manipulere plottene.

  Slik aktiverer eller deaktiverer du tastaturvibrasjon på iPhone

Disse plottealternativene inkluderer:

#1. Søylediagrammer

Søyleplott, kjent som søylediagrammer, er et passende alternativ for å visualisere en kvantitativ sammenligning av verdier innenfor samme kategori.

Matplotlib representerer dette plottet ved hjelp av rektangulære stolper der lengdene og høydene representerer deres proporsjonale verdier. Stolpene kan enten være horisontale eller vertikale.

Matplotlib bruker sin plt.bar() funksjon for å lage barplotten.

I tillegg kan du bruke flere funksjoner for å manipulere dette plottet. For eksempel merker funksjonene plt.xlabel() og plt.ylabel() grafens x- og y-akser.

Plt.title()-funksjonen lar deg også gi en tittel til plottet ditt, mens plt.savefig()-funksjonen lagrer plottet. Funksjonen plot.show(), som er den viktigste, viser plottet.

#2. Pai tomter

Du kan visualisere varenes proporsjonale fordeling innenfor samme kategori ved å bruke et sirkulært statistisk plott vi kaller sektordiagrammer.

Kakeplott viser data i prosentform. Hele diagrammets område tilsvarer hele dataens prosentandel, mens de individuelle kakestykkene representerer deler av dataens prosentandel.

Matplotlib bruker funksjonen plt.pie() som tegner og justerer sektordiagrammets parametere.
Flere parametere som autopkt som skriver ut kakediagramverdien opp til 1 desimal er nyttige for å plotte kakeplott.

Bedriftsorganisasjoner finner kakediagrammer nyttige for å presentere relevant informasjon som drift, salg eller ressurser.

#3. Histogram

Et histogram viser numerisk datadistribusjon. Den bruker kontinuerlige intervaller for å dele dataene inn i distinkte seksjoner.

Hovedforskjellen mellom et histogram og et søyleplott er typen data de håndterer. Mens histogrammer håndterer den kontinuerlige datatypen, håndterer søyleplott kategoriske data i stedet.

Matplotlib bruker hist()-funksjonen som bruker en rekke tilfeldige eller definerte verdier for å lage histogrammet.

#4. Linjetomter

Disse plottene er nyttige for å vise forholdet mellom to dataverdier som vi definerer som numeriske og kategoriske, på X- og Y-basis.

Linjeplott er viktige for å spore endringen av dataverdiene over en viss tid.

#5. Spredningsplott

Spredningsplott viser sammenhengen, inkludert korrelasjonen mellom variablene i dataene. Det er også nyttig for å identifisere uteliggere.

Spredningsplott bruker prikker for å representere forholdet mellom datavariablene og hvordan en endring i en variabel kan påvirke en annen.

Hvordan lage tomter i Matplotlib

Matplotlib bruker forskjellige funksjoner for å lage forskjellige plott. Den bruker også svært få linjer med kode for å lage plottet.

Nedenfor ser vi hvordan du lager de forskjellige plottalternativene ved å bruke forskjellige funksjoner i Matplotlib.

#1. Bartomt i Matplotlib

Stolpeplott, som forklart ovenfor, viser datakategorier ved hjelp av stolper og akser som representerer en sammenligning av kategorier på én akse og tilsvarende verdier for kategoriene på den andre aksen.

Bar()-funksjonen i Matplotlib bruker forskjellige argumentoppsett for å beskrive stolpenes layout, som vist nedenfor.

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

X- og y-parametrene representerer x-koordinatverdiene og y-koordinatverdiene til søylen i plottet. Breddeparameteren representerer søylens bredde, mens høydeparameteren representerer søylens høyde.

La oss for eksempel representere antall hunder og katter i et dyrehjem kalt 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)

Produksjon:

Utdata av søyleplott i Mathplotlib

Som i vårt eksempel ovenfor, kan du spesifisere fargen på stolpene ytterligere ved å bruke fargeattributtet. Dessuten navngir plt.xlabel og p.ylabel henholdsvis x- og y-aksene mens plt.title navngir plottet.

  Hvordan får jeg et menneske hos Verizon kundeservice

#2. Hvordan lage et kakeplot

Matplotlib bruker pie()-funksjonen som følger med pyplot-modulen for å plotte et sektordiagram.
Funksjonen representerer dataene som skal plottes i matriseform.

Syntaks:

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

Fargeparameteren setter fargen på paiskivene. Du kan bruke en rekke verdier til å spesifisere en farge for hver skive.

For ytterligere å inkludere detaljer om hver skive i kaken, legger autopkt-argumentet til de numeriske prosentene som hver skive representerer ved å bruke Pythons String-formateringsnotasjon. Eksplosjonen som et argument aksepterer en rekke verdier som starter fra 0,1 for å definere stykkets avstand fra midten av kaken.

La oss plotte et kakediagram som viser ressurser i prosent tildelt for et bestemt prosjekt.

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

Produksjon:

Utdata av kakeplottet i Mathplotlib

Plottet ovenfor viser et sektordiagram med fire skiver merket med henholdsvis w, x, y og z. Eksplosjonsverdiene definerer hvor lenger vekk fra midten av kaken skivene skal plasseres.

Fra diagrammet ovenfor er x lenger fordi eksplosjonsverdien er større enn resten. Skyggeattributtet legger til en skygge til kakeplottet som på bildet mens autopct setter den relative prosentandelen til hele kaken som hver skive representerer.

#3. Opprette et histogramplott

Med et histogram vil vi bruke en serie med intervaller for å representere rekkevidden til de gitte verdiene på x-aksen.
Y-aksen vil derimot representere frekvensinformasjonen.

I motsetning til de andre plottene, krever plotting av et histogram i Matplotlib noen forhåndsdefinerte trinn du må følge for å lage plottet.

Disse trinnene inkluderer:

  • Lag en boks med områder fra settet med dataverdier du har. Du kan bruke funksjonen np.random.normal() som kan generere tilfeldige verdier for deg.
  • Ved å bruke en serie med intervaller kan du fordele verdier i en rekke verdier.
  • Tell verdiene som faller innenfor hvert bestemt intervall.
  • Bruk nå funksjonen matplotlib.pyplot.hist() for å lage histogrammet.
  • Hist()-funksjonen tar inn flere parametere, inkludert:

    x – Dette representerer array-sekvensen

    bins – Dette er en valgfri parameter som representerer ikke-overlappende intervaller av variabler som kan inneholde heltall eller en strengsekvens.

    rekkevidde – Den definerer øvre og nedre rekkevidde for beholderne

    align – Denne parameteren kontrollerer histogrammets justering. Enten venstre, høyre eller midten.

    farge – Den definerer fargen på stolpene.

    rwidth – Den setter den relative bredden på stolpene i histogrammet til den på bingen.

    log – loggparameter definerer en loggskala på aksen til et histogram.

    Følgende eksempel plotter et histogram med de definerte verdiene.

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

    Produksjon:

    Utdata av histogramplott i Mathplotlib

    #4. Linjeplott i Matplotlib

    Matplotlib bruker sitt underbibliotek kalt pyplot , som kommer med ulike funksjoner som hjelper med implementeringen.

    Vi bruker plot()-funksjonen, som er en generisk funksjon som følger med pyplot for å plotte linjeplottene og forskjellige andre typer linjeplott, inkludert buede plott og flere linjeplott. Å lage disse forskjellige plott avhenger av verdiene du sender til y-aksen.

      6 beste proxy-administratorer for å administrere fullmakter i stor skala

    Når du plotter, importerer du matplotlib.pyplot og Numpy, som tegner diagrammene. Plot(x,y)-metoden lager linjeplott ved å sende tilfeldige verdier til x- og y-argumentene.

    I tillegg kan du sende en etikettvariabel som merker plottet. Tittelfunksjonen gir videre navn til plottets tittel, mens xlabel- og ylabel-funksjonene navngir aksene. Til slutt viser funksjonen show() plottet.

    For eksempel:

    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 linjeplott i Mathplotlib

    np.linspace-attributtet returnerer på plottet, et sett med jevnt fordelte tall over et bestemt intervall for x-verdiene. Dette vil lage en matrise med 10 verdier i området 0 og 5. Y-verdiene opprettes fra ligningen som bruker tilsvarende verdier for x.

    Opprette spredningsplott

    Matplotlib bruker scatter()-metoden for å lage dette plottet.
    Denne metoden tar inn følgende parametere.

    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) 

    Parameterne x_axis_data og y_axis_data kan ikke stå tomme, i motsetning til resten av parameterne som kan være valgfrie og har Ingen som verdi. Mens x_axis_data-argumentet definerer en matrise med data for x-aksen, setter y_axis_data en matrise med data for y-aksen.

    Et eksempel på et spredningsplott 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()

    Utgangen vil like:

    Utdata av spredningsplott i Mathplotlib

    Hva er subplot() i matplotlib

    Subplot()-funksjonen kan brukes til å tegne flere plott på en enkelt Matplotlib-figur. Dette gjør det mulig å se og sammenligne de flere plottene i figuren.

    Denne funksjonen vil returnere en tuppel med tre argumenter; rader og kolonner som henholdsvis første og andre argument, og gjeldende plotts indeks som det tredje argumentet.

    Radene og kolonnene definerer tydelig Matplotlibs layout.

    Derfor vil plt.subplot(2, 1, 1) for eksempel plotte en Matplotlib-figur med to rader og en kolonne, og dette plottet vil være det første plottet.

    På den annen side viser plt.subplot(2, 1, 2) et andre plott med to rader og en kolonne.

    Å plotte disse to plottene vil lage dem oppå hverandre, som i eksemplet nedenfor.

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

    Utdataene fra eksemplet ovenfor vil se ut som bildet nedenfor.

    Ved å bruke et annet eksempel, la oss bruke subplot-funksjonen til å plotte to figurer med en rad og to kolonner. Dette vil vise plottene side ved side.

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

    Eksemplet ovenfor viser følgende resultat.

    Vel, det var interessant interaktivt, synes du ikke det?😃

    Siste ord

    Matplotlib er et kjent visualiseringsbibliotek i Python. Dens interaktivitet og evne til brukervennlighet selv for nybegynnere gjør den til et enda bedre verktøy å bruke for plotting i Python.

    Denne artikkelen dekket eksempler på de ulike plottene som funksjoner som følger med Matplotlib kan lage, inkludert kakeplott, søyleplott, histogrammer og spredningsplott.

    Selvfølgelig har Python flere andre biblioteker som maskinlæringseksperter og dataforskere kan bruke til å lage visualiseringer.

    Du kan utforske flere plott du kan lage med Matplotlib og hvilke funksjoner du vil bruke for å lage plottet.

    Lykke til med plotting!📉📊