Tilbake
5.6
Sensordata og databehandling

5.6 Sensordata og databehandling

Lese sensordata, filtrering, kalibrering og dataloggging.

30 min
5 oppgaver
SensordataFiltreringKalibreringDatalogging
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

Når tall blir bilder

En tabell med tusen tall sier sjelden noe ved første øyekast. Men tegn de samme tallene som en graf, og plutselig ser du trenden, mønsteret, sammenhengen. I forskning og teknologi er det å visualisere data ofte like viktig som å regne på dem.

I Python bruker vi biblioteket Matplotlib til å lage profesjonelle grafer. Det brukes overalt -- fra skoleforsøk til publiserte forskningsartikler. I dette kapittelet lærer du å lage linjediagrammer, stolpediagrammer og punktdiagrammer, å tilpasse dem med titler og farger, og å sette flere grafer sammen i ett vindu. Etterpå kan du lage profesjonelle visualiseringer av dine egne eksperimentdata.

De første grafene

Vi starter med å hente inn Matplotlib: import matplotlib.pyplot as plt. Forkortelsen plt er standard, og brukes overalt. Den mest grunnleggende grafen er linjediagrammet, som lages med plt.plot(x, y). Du gir den to lister -- en for x-aksen og en for y-aksen -- og Matplotlib trekker en linje gjennom punktene.

Men en graf uten forklaring er nesten verdiløs. Derfor bruker vi alltid noen ledsagerfunksjoner: plt.xlabel() og plt.ylabel() setter navn på aksene, plt.title() gir grafen en tittel, plt.grid(True) legger til et rutenett, og til slutt viser plt.show() grafen på skjermen. Vil du lagre den som bildefil, bruker du plt.savefig("graf.png", dpi=150) -- og merk at den må kalles før plt.show(), ellers blir bildet tomt. En høyere dpi-verdi gir bedre oppløsning, fint til rapporter.

Du kan også tilpasse selve linjene med korte formatstrenger. En bokstav for farge -- r for rød, b for blå, g for grønn, k for svart -- kombineres med en linjestil -- - for heltrukket, -- for stiplet -- og en markør, som o for sirkel eller s for firkant. Strengen "r-o" betyr altså en rød heltrukket linje med sirkler. Har du flere datasett i samme graf, gir du hvert en label, og plt.legend() viser en tegnforklaring som forteller hvilken linje som er hva. Slik kan du for eksempel tegne både inne- og utetemperatur i én og samme figur.

📝Oppgave Quiz 1

Riktig diagram til riktig data

Linjediagrammet er ikke alltid det rette. Valget av diagramtype avhenger av hva slags data du har. Når du vil sammenligne kategorier -- som karaktersnittet i ulike fag -- passer et stolpediagram, laget med plt.bar(x, y). Du kan gi stolpene farger, sette y-aksens område med plt.ylim(1, 6), og legge til et rutenett bare på y-aksen med plt.grid(axis="y").

Når du derimot vil vise sammenhengen mellom to variabler -- som studietid og karakter -- bruker du et punktdiagram, laget med plt.scatter(x, y). Hvert datapunkt blir en prikk, og du kan styre størrelsen med s og gjennomsiktigheten med alpha, som er nyttig når punkter overlapper. Et punktdiagram lar deg umiddelbart se om det er en trend i dataene.

En nyttig regel er altså: linjediagram for utvikling over tid, stolpediagram for kategorier, og punktdiagram for sammenhenger. Du kan også bli mer avansert. Vil du sammenligne to klasser fag for fag, kan du tegne to sett stolper side om side ved å forskyve x-posisjonene litt til venstre og høyre. Og uansett diagramtype gjelder de samme gode vanene: tydelige aksenavn med enheter, som «Temperatur (°C)», og en tegnforklaring når du har flere datasett. Det er disse detaljene som skiller en forvirrende graf fra en som faktisk opplyser.

📝Oppgave Quiz 2

Flere grafer og en ekte analyse

Noen ganger vil du vise flere grafer samtidig, side om side, for å sammenligne. Da bruker du subplots. Med plt.subplots(1, 2) lager du én rad med to grafer ved siden av hverandre, mens plt.subplots(2, 1) gir to grafer over hverandre. En liten endring i syntaksen følger med: når du jobber med subplots, bruker du ax1.plot() i stedet for plt.plot(), og metodene heter set_xlabel(), set_ylabel() og set_title() i stedet for sine plt.-varianter.

La oss se hvordan dette brukes i et ekte vitenskapelig plott. Tenk deg et pendelforsøk, der du har målt svingeperioden for ulike pendellengder, og kjenner den teoretiske formelen T=2πL/gT = 2\pi\sqrt{L/g}. Da kan du lage en figur med to grafer. I den venstre plotter du de målte verdiene som punkter med scatter, og legger den teoretiske kurven over som en linje -- slik ser du umiddelbart hvor godt forsøket stemmer med teorien. I den høyre lager du et stolpediagram av avviket mellom målt og teoretisk verdi, gjerne med en vannrett linje på null som referanse, så du kan vurdere målenøyaktigheten.

Dette er selve hjertet i vitenskapelig visualisering: målte verdier som punkter, teorien som kurve, og et avviksdiagram som vurderer kvaliteten. Med Matplotlib kan du lage akkurat slike profesjonelle figurer av dine egne data -- og når du husker de gode vanene med aksenavn, enheter, tegnforklaring og riktig diagramtype, blir grafene dine både ærlige og overbevisende.

📝Oppgave Quiz 3

Oppsummering

Vi har sett at Matplotlib lar oss gjøre tall om til bilder. Linjediagrammer med plt.plot() viser utvikling over tid, stolpediagrammer med plt.bar() sammenligner kategorier, og punktdiagrammer med plt.scatter() viser sammenhenger. Korte formatstrenger styrer farge, linjestil og markører.

Grafene gjøres profesjonelle med aksenavn, enheter, titler, rutenett og tegnforklaring, og kan lagres med plt.savefig(). Med subplots kan du sette flere grafer sammen -- som målte punkter mot en teoretisk kurve, pluss et avviksdiagram. Riktig diagramtype og gode vaner er det som gjør at en graf forteller en ærlig og tydelig historie om dataene.

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.