En introduktion til Matplotlib i Python

Matplotlib er et Python-plotbibliotek, som maskinlæringseksperter for det meste bruger til at skabe statiske og interaktive visualiseringer.

Hvad er Matplotlib

Mathplotlib er en kreation af John D. Hunter i 2003, der blev udgivet den 8. maj 2021 og har en aktuel version af 3.4.2.

Dette bibliotek er hovedsagelig skrevet i Python, mens resten er skrevet i C-objektiv og JavaScript, hvilket gør det platformkompatibelt.

Matplotlib bruger NumPy, som er en Python numerisk udvidelse. Dens udvidelse med NumPy tilføjer dens levedygtighed som et open source-alternativ og gør det til en bedre præference end MATLAB.

For Python GUI-applikationer tillader Matplotlib at plotte statiske plots på den ved hjælp af den objektorienterede API, den kommer med.

Brugere kan kun bruge nogle få skrevne linjer med Python-kode til at visualisere deres data ved hjælp af forskellige plots, herunder scatterplot, histogrammer, søjlediagrammer, cirkeldiagrammer, linjeplot og boxplot.

Du kan bruge Matplotlib til at lave plots i miljøer, herunder Python shell, Jupyter notebook,
Jupyter lab og også ved hjælp af Pycharm eller Anaconda og på webapplikationsservere som Flask og Django på tværs af forskellige platforme.

Ligesom i MATLAB kan du i vid udstrækning kontrollere plottene med hensyn til skrifttyper, linjer, farver og stilarter.

Efter den korte introduktion af Matplotib-biblioteket i Python, lad os se, hvordan vi kan sætte det op i vores systemer.

Opsætning af Matplotlib-miljø

Som enhver anden Python-pakke og -bibliotek kan du installere det prækompilerede Matplotlib-bibliotek og dets pakker på tværs af alle operativsystemer med pip-pakkehåndteringen.

Det kræver selvfølgelig, at du først installerer Python og pip-pakken på dit system.

Følgende kommandoer viser versionen af ​​Python og pip for at bekræfte, om disse værktøjer allerede er installeret.

Tjek om Python er installeret

Python --version

Tjek om pip er installeret

pip -V

Installer Mathplotlib

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

python -m pip install matplotlib

Denne kommando downloader og installerer de relevante pakker af Matplotlib. Du bør se en vellykket installationsmeddelelse, når installationen er fuldført.

For at være sikker på, at Matplotlib er blevet installeret korrekt, skriv følgende kommando, som vil vise Matplotlibs version i din kommandoprompt.

import matplotlib
matplotlib.__version__

Udviklere, der ønsker at installere den ukompilerede Matplotlib-pakke, skal have adgang til den rigtige compiler i deres system, foruden afhængigheder, opsætningsscripts, konfigurationsfiler og patches.

Denne særlige ukompilerede Matplolib-installation kan dog være kompliceret, især for Matplotlib-nybegyndere. Derfor, hvorfor ikke bare bruge en kommando på én linje til at installere biblioteket på få sekunder?🤔

Efter Matplotlibs installation skal du importere pakken til dit miljø for at få adgang til dets hjælpeprogrammer.

Matplotlib plotte muligheder

Matplotlib giver adskillige plottemuligheder til at visualisere data. Det tillader også tilpasning af plottene ved at give forskellige temaer, farver og paletindstillinger, som brugeren kan bruge til at manipulere plottene.

  Hvad er Xbox Cloud Gaming (Project xCloud)?

Disse plotningsmuligheder omfatter:

#1. Søjlediagrammer

Søjleplot, kendt som søjlediagrammer, er en passende mulighed for at visualisere en kvantitativ sammenligning af værdier inden for samme kategori.

Matplotlib repræsenterer dette plot ved hjælp af rektangulære søjler, hvor deres længder og højder repræsenterer deres proportionale værdier. Stængerne kan enten være vandrette eller lodrette.

Matplotlib bruger sin plt.bar()-funktion til at skabe søjleplottet.

Derudover kan du bruge flere funktioner til at manipulere dette plot. For eksempel mærker funktionerne plt.xlabel() og plt.ylabel() grafens x- og y-akser.

Funktionen plt.title() giver dig også mulighed for at give en titel til dit plot, mens funktionen plt.savefig() gemmer plottet. Funktionen plot.show(), som er den vigtigste, viser plottet.

#2. Tærtegrunde

Du kan visualisere varernes proportionale fordeling inden for samme kategori ved hjælp af et cirkulært statistisk plot, vi kalder cirkeldiagrammer.

Cirkeldiagrammer viser data i procentform. Hele diagrammets område svarer til hele dataens procentdel, mens de enkelte tærtestykker repræsenterer dele af dataens procentdel.

Matplotlib bruger funktionen plt.pie() som tegner og justerer cirkeldiagrammets parametre.
Flere parametre som autopkt, der udskriver cirkeldiagramværdien op til 1 decimal, er nyttige til at plotte cirkeldiagrammer.

Forretningsorganisationer finder cirkeldiagrammer nyttige til at præsentere relevant information som drift, salg eller ressourcer.

#3. Histogram

Et histogram viser numerisk datafordeling. Den bruger kontinuerlige intervaller til at opdele dataene i adskilte sektioner.

Den største forskel mellem et histogram og et søjleplot er den type data, de håndterer. Mens histogrammer håndterer den kontinuerlige datatype, håndterer søjleplot kategoriske data i stedet.

Matplotlib bruger funktionen hist() der bruger en række tilfældige eller definerede værdier til at oprette histogrammet.

#4. Linje plots

Disse plots er nyttige til at vise forholdet mellem to dataværdier, som vi definerer som numeriske og kategoriske, på X- og Y-basis.

Linjeplot er væsentlige til at spore ændringen af ​​dataværdierne over nogen tid.

#5. Scatter plots

Scatterplot peger på sammenhængen, herunder sammenhængen mellem variablerne i dataene. Det er også nyttigt til at identificere outliers.

Punktplot bruger prikker til at repræsentere forholdet mellem datavariablerne, og hvordan en ændring i en variabel kan påvirke en anden.

Sådan opretter du plots i Matplotlib

Matplotlib bruger forskellige funktioner til at skabe forskellige plots. Det bruger også meget få linjer kode til at skabe plottet.

Nedenfor ser vi, hvordan du opretter de forskellige plotmuligheder ved hjælp af forskellige funktioner i Matplotlib.

#1. Bargrund i Matplotlib

Søjleplot, som forklaret ovenfor, viser datakategorier ved hjælp af søjler og akser, der repræsenterer en sammenligning af kategorier på den ene akse og tilsvarende værdier for kategorierne på den anden akse.

Bar()-funktionen i Matplotlib tager forskellige argumentlayouts til at beskrive søjlernes layout, som vist nedenfor.

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

X- og y-parametrene repræsenterer x-koordinatværdierne og y-koordinatværdierne for søjlen i plottet. Breddeparameteren repræsenterer bjælkens bredde, mens højdeparameteren repræsenterer bjælkens højde.

Lad os for eksempel repræsentere antallet af hunde og katte i et dyreinternat kaldet 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:

Output af søjleplot i Mathplotlib

Som i vores eksempel ovenfor, kan du yderligere angive farven på søjlerne ved hjælp af farveattributten. Desuden navngiver plt.xlabel og p.ylabel henholdsvis x- og y-akserne, mens plt.title navngiver plottet.

  Sådan konfigurerer og bruger du Siri på en iPhone

#2. Sådan opretter du et tærteplot

Matplotlib bruger pie()-funktionen, der følger med pyplot-modulet til at plotte et cirkeldiagram.
Funktionen repræsenterer de data, der skal plottes i matrixform.

Syntaks:

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

Farveparameteren indstiller farven på tærteskiverne. Du kan bruge en række værdier til at angive en farve for hvert udsnit.

For yderligere at inkludere detaljer om hver skive i kagen, tilføjer autopct-argumentet de numeriske procenter, som hver skive repræsenterer ved hjælp af Pythons String-formateringsnotation. Eksplosionen som et argument accepterer en række værdier, der starter fra 0,1 for at definere skivens afstand fra midten af ​​tærten.

Lad os plotte et cirkeldiagram, der viser ressourcer i procent tildelt til et bestemt 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:

Output af tærteplot i Mathplotlib

Plottet ovenfor viser et cirkeldiagram med fire skiver mærket henholdsvis w, x, y og z. Eksplodværdierne definerer, hvor længere væk fra midten af ​​tærten skiverne skal placeres.

Fra diagrammet ovenfor er x længere, fordi dens eksplosionsværdi er større end resten. Skyggeattributten tilføjer en skygge til tærteplottet som på billedet, mens autopct indstiller den relative procentdel til hele tærten, som hver skive repræsenterer.

#3. Oprettelse af et histogramplot

Med et histogram vil vi bruge en række intervaller til at repræsentere rækkevidden af ​​de givne værdier på x-aksen.
Y-aksen vil på den anden side repræsentere frekvensinformationen.

I modsætning til de andre plots kræver plotning af et histogram i Matplotlib nogle foruddefinerede trin, du skal følge for at oprette plottet.

Disse trin omfatter:

  • Opret en beholder med områder ud fra det sæt af dataværdier, du har. Du kan bruge funktionen np.random.normal() som kan generere tilfældige værdier for dig.
  • Brug en række intervaller til at fordele værdier i en række værdier.
  • Tæl de værdier, der falder inden for hvert bestemt interval.
  • Brug nu matplotlib.pyplot.hist()-funktionen til at oprette histogrammet.
  • Hist()-funktionen tager flere parametre ind, herunder:

    x – Dette repræsenterer array-sekvensen

    bins – Dette er en valgfri parameter, der repræsenterer ikke-overlappende intervaller af variabler, der kan indeholde heltal eller en strengsekvens.

    rækkevidde – Det definerer det øvre og nedre område af beholderne

    align – Denne parameter styrer histogrammets justering. Om venstre, højre eller midterste.

    farve – Det definerer farven på søjlerne.

    rwidth – Den indstiller den relative bredde af søjlerne i histogrammet til den for bin.

    log – log parameter definerer en log skala på aksen af ​​et histogram.

    Følgende eksempel plotter et histogram med de definerede værdier.

    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:

    Output af histogramplot i Mathplotlib

    #4. Linjeplot i Matplotlib

    Matplotlib bruger sit underbibliotek kaldet pyplot , som kommer med forskellige funktioner, der hjælper med implementeringen.

    Vi bruger funktionen plot(), som er en generisk funktion, der følger med pyplot til at plotte linjeplot og forskellige andre typer linjeplot, inklusive kurvede plots og multiple linjeplot. Oprettelse af disse forskellige slags plots afhænger af de værdier, du overfører til y-aksen.

      3 grunde til at bruge Live Video Broadcasting App Periscope

    Når du plotter, skal du importere matplotlib.pyplot og Numpy, som tegner diagrammerne. Plot(x,y)-metoden opretter linjeplottet ved at sende tilfældige værdier til x- og y-argumenterne.

    Derudover kan du sende en etiketvariabel, der mærker plottet. Titelfunktionen navngiver yderligere plottets titel, hvorimod xlabel- og ylabel-funktionerne navngiver akserne. Til sidst viser funktionen 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:

    Output af linjeplot i Mathplotlib

    np.linspace-attributten returnerer på plottet, et sæt af lige fordelte tal over et bestemt interval for x-værdierne. Dette vil skabe en matrix med 10 værdier i intervallet 0 og 5. Y-værdierne oprettes ud fra den ligning, der bruger tilsvarende værdier af x.

    Oprettelse af scatter-plot

    Matplotlib bruger scatter()-metoden til at skabe dette plot.
    Denne metode tager følgende parametre ind.

    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) 

    Parametrene x_axis_data og y_axis_data kan ikke efterlades tomme, i modsætning til resten af ​​parametrene, der kan være valgfrie og have Ingen som værdi. Mens argumentet x_axis_data definerer en matrix af data for x-aksen, sætter y_axis_data en matrix af data for y-aksen.

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

    Dens output vil gerne:

    Output af scatter plot i Mathplotlib

    Hvad er subplot() i matplotlib

    Funktionen subplot() kan bruges til at tegne flere plot på en enkelt Matplotlib-figur. Dette tillader visning og sammenligning af de flere plots i figuren.

    Denne funktion vil returnere en tupel med tre argumenter; rækker og kolonner som henholdsvis første og andet argument, og det aktuelle plots indeks som det tredje argument.

    Rækkerne og kolonnerne definerer tydeligt Matplotlibs layout.

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

    På den anden side viser plt.subplot(2, 1, 2) et andet plot med to rækker og en kolonne.

    Plotning af disse to plots vil skabe dem oven på hinanden, 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()

    Outputtet fra ovenstående eksempel vil se ud som billedet nedenfor.

    Brug et andet eksempel, lad os bruge subplot-funktionen til at plotte to figurer med en række og to kolonner. Dette vil vise plottene side om 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()

    Ovenstående eksempel vil vise følgende resultat.

    Nå, det var interessant interaktivt, synes du det ikke?😃

    Afsluttende ord

    Matplotlib er et berømt brugt visualiseringsbibliotek i Python. Dens interaktivitet og evne til brugervenlighed selv for begyndere gør det til et endnu bedre værktøj at bruge til at plotte i Python.

    Denne artikel dækkede eksempler på de forskellige plots, som funktioner, der følger med Matplotlib, kan oprette, herunder tærteplot, søjleplot, histogrammer og scatterplot.

    Selvfølgelig har Python flere andre biblioteker, som maskinlæringseksperter og dataforskere kan bruge til at skabe visualiseringer.

    Du kan udforske flere plots, du kan oprette med Matplotlib, og hvilke funktioner du vil bruge til at oprette plottet.

    Godt plot!📉📊