Som forsker som regelmessig skriver publikasjoner, står jeg ofte overfor spørsmålet om å produsere pene grafer. Dette var ikke alltid lett for meg, og jeg måtte bruke de tilgjengelige verktøyene på den beste måten jeg kunne, men jeg var ikke fornøyd med grafene jeg produserte mesteparten av tiden. Jeg pleide alltid å lure på hvordan andre forskere produserte sine pene grafer!
Dette problemet begynte å minske etter at jeg kom over Pythons bibliotek, matplotlib
, som produserer slike pene grafer. Som nevnt på bibliotekets hjemmeside:
matplotlib
er et python 2D-plotting-bibliotek som produserer publikasjonskvalitetstall i en rekke hardcopyformater og interaktive miljøer på tvers av plattformer.matplotlib
kan brukes i pythonskript, python og ipython skallet (ala MATLAB® * eller Mathematica®), webapplikasjonsservere og seks grafiske brukergrensesnittverktøy.matplotlib
prøver å gjøre enkle ting enkle og vanskelige ting mulig. Du kan generere tomter, histogrammer, strømspekter, bardiagrammer, errorcharts, scatterplots, etc, med bare noen få linjer med kode.
I denne opplæringen skal jeg vise deg hvordan du installerer matplotlib
, og så vil jeg gå gjennom noen eksempler.
Hvis du er interessert i å grave dypere inn i Python og lære å bruke Pythons kraft til å håndtere data, hvorfor ikke sjekke disse to kursene:
installere matplotlib
er veldig enkelt. Jeg jobber for tiden på en Mac OS X-maskin, så jeg vil vise deg hvordan du installerer biblioteket på det operativsystemet. Vennligst se installasjonssiden for matplotlib for mer informasjon om installering matplotlib
på andre operativsystemer.
matplotlib
kan installeres ved å kjøre følgende kommandoer i Terminal (jeg skal bruke pip, men du kan bruke andre verktøy):
krølle -O https://bootstrap.pypa.io/get-pip.py python get-pip.py pip installere matplotlib
Det er det. Du har nå matplotlib
oppe og går. Like enkelt som det!
La oss nå se på noen eksempler på bruk matplotlib
. Det første settet med eksempler vil være på å tegne noen grunnleggende tomter.
La oss vurdere et enkelt eksempel på å tegne a line plot ved hjelp av matplotlib
. I dette tilfellet skal vi bruke matplotlib.pyplot
, som gir et MATLAB-lignende plottingsramme. Det gir med andre ord en samling kommandostilfunksjoner som aktiverer matplotlib
å jobbe som MATLAB.
La oss si at vi ønsket å plotte en linje for følgende sett med poeng:
x = (4,8, 13,17,20) y = (54, 67, 98, 78, 45)
Dette kan gjøres ved å bruke følgende skript:
importer matplotlib.pyplot som plt plt.plot ([4,8,13,17,20], [54, 67, 98, 78, 45]) plt.show ()
Legg merke til at vi representerte x
og y
poeng som lister.
I dette tilfellet vil resultatet bli som følger:
Linjen i figuren over er standardlinjen som blir trukket for oss, når det gjelder form og farge. Vi kan tilpasse det ved å endre formen og fargen på linjen ved hjelp av noen symboler (spesifiserer) fra MATLAB plot dokumentasjonen. Så la oss si at vi ønsket å tegne en grønn stiplede linje med diamanter markører. Spesifikatene vi trenger i dette tilfellet er: 'G - d'
. I vårt skript ovenfor legger vi spesifiseringspunktene slik:
plt.plot ([4, 8, 13, 17, 20], [54, 67, 98, 78, 45], 'g-d')
I så fall ser figurlinjeproten ut som følger:
Et spredningsdiagram er en graf som viser forholdet mellom to sett med data, for eksempel forholdet mellom alder og høyde. I denne delen skal jeg vise deg hvordan vi kan tegne en scatterplot med matplotlib
.
La oss ta to sett med data, x
og y
, som vi ønsker å finne forholdet deres (scatter plot):
x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88] y = [54,72, 43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54]
Spredningsdiagrammet kan tegnes ved hjelp av følgende skript:
importer matplotlib.pyplot som plt x = [2,4,6,7,9,13,19,26,29,31,36,40,48,51,57,67,69,71,78,88] y = [54,72,43,2,8,98,109,5,35,28,48,83,94,84,73,11,464,75,200,54] plt.scatter (x, y) plt.show ()
Utgangen av dette skriptet er:
Selvfølgelig kan du endre fargen på markørene i tillegg til andre innstillinger, som vist i dokumentasjonen.
Et histogram er en graf som viser frekvensen av data ved hjelp av barer, hvor tall er gruppert i områder. Med andre ord vises hyppigheten til hvert dataelement i listen ved hjelp av histogrammet. De grupperte tallene i form av intervaller kalles binger. La oss se på et eksempel for å forstå dette mer.
La oss si at listen over data vi vil finne histogrammet for, er som følger:
x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89,45,3,23 , 2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309]
Python-skriptet vi kan bruke til å vise histogrammet for de ovennevnte dataene er:
importer matplotlib.pyplot som plt x = [2,4,6,5,42,543,5,3,73,64,42,97,63,76,63,8,73,97,23,45,56,89 , 45,3,23,2,5,78,23,56,67,78,8,3,78,34,67,23,324,234,43,544,54,33,223,443,444,234,76,432,233,23,232,243,222,221,254,222,276,300,353,354,387,364,309] num_bins = 6 n, skuffer, patches = plt.hist (x, num_bins, facecolor = 'green') plt.show ()
Når du kjører skriptet, bør du få noe som ligner på følgende graf (histogram):
Det er selvfølgelig flere parametere for funksjonen hist ()
, som vist i dokumentasjonen.
Denne opplæringen var en skrape på overflaten for å arbeide med grafer i Python. Det er mer til matplotlib
, og du kan gjøre mange interessante ting med dette biblioteket.
Hvis du vil lære mer om matplotlib
og se andre typer figurer du kan opprette med dette biblioteket, kan ett sted være eksempler av matplotlib
nettside. Det er også noen interessante bøker om emnet, for eksempel Mastering matplotlib og Matplotlib Plotting Cookbook.
Som vi så i denne opplæringen, kan Python utvides til å utføre interessante oppgaver ved å benytte tredjepartsbiblioteker. Jeg har vist et eksempel på et slikt bibliotek, nemlig matplotlib
.
Som jeg nevnte i introduksjonen til denne opplæringen, var det ikke en lett oppgave å produsere flotte grafer, særlig når du vil presentere slike grafer i vitenskapelige publikasjoner. matplotlib
ga løsningen på dette problemet, fordi du ikke bare kan lage flotte grafer på en enkel måte, men også å ha kontrollen (dvs. parametere) over slike grafer, siden du bruker et programmeringsspråk for å generere grafene dine vår sak, Python.