More
Сhoose
Sweden Flag
  • Startsida
  • Blogg
  • Steg för steg: Hur du skapar din första datavisualisering i Python

Steg för steg: Hur du skapar din första datavisualisering i Python

Steg för steg: Hur du skapar din första datavisualisering i Python
Kategori:  Technology
Datum:  
Författare:  Shehan Udantha

Steg för steg: Hur du skapar din första datavisualisering i Python

Om du arbetar med data – oavsett om det är experimentella resultat, enkätundersökningar eller ett dataset du samlat in för ett personligt projekt – kommer du förr eller senare behöva visa det grafiskt. Ett välskapat diagram kan kommunicera ett mönster i din data snabbare än vad ett textstycke någonsin kan. Den här guiden går igenom hur du bygger din första Python-visualisering från grunden med hjälp av endast pandas och matplotlib, två bibliotek som du kommer att återkomma till ständigt i ditt analysarbete.

När du är klar har du ett fungerande linjediagram, en förståelse för vad varje rad kod gör och tillräckligt med kunskap för att börja anpassa visualiseringar för din egen data.

Varför börja med matplotlib?

Det finns dussintals visualiseringsbibliotek i Python – Seaborn, Plotly, Bokeh, Altair – och de flesta är värda att lära sig så småningom. Men nästan alla av dem är byggda ovanpå matplotlib eller lånar dess konventioner. Genom att lära dig matplotlib först lär du dig den grammatik som allt annat antar att du redan kan. Det är också det bibliotek som du kommer att se i nästan alla kodbaser, guider och svar på Stack Overflow, så kunskap här lönar sig omedelbart.

Steg 1: Konfigurera din miljö

Om du inte redan har gjort det, installera de två biblioteken du behöver. Öppna en terminal och kör:

pip install pandas matplotlib

Om du arbetar i en Jupyter-notebook (rekommenderas för den här typen av undersökande arbete), se till att den också är installerad:

pip install notebook

Kör ett snabbt test i en Python-fil eller en notebook-cell:

import pandas as pd
import matplotlib.pyplot as plt

print("Konfigurationen lyckades")

Om det körs utan fel är du redo.

Steg 2: Läs in din data i en DataFrame

Verklig data kommer vanligtvis från en CSV-fil, en Excel-fil eller ett API. För den här genomgången håller vi det enkelt och skapar en liten datamängd för hand, så att du kan fokusera helt på visualiseringslogiken snarare än datahanteringen.

data = {
    "month": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
    "revenue": [12000, 15500, 14200, 18700, 21300, 19800]
}
df = pd.DataFrame(data)
print(df)

Detta ger dig en pandas DataFrame – standardbehållaren för tabulär data i Pythons dataekosystem. När din egen data väl är i detta format (via pd.read_csv(), pd.read_excel() eller liknande), gäller allt nedan på precis samma sätt.

Steg 3: Skapa en grundläggande graf

Här är den minsta mängd kod som krävs för att omvandla denna DataFrame till ett diagram:

plt.plot(df["month"], df["revenue"])
plt.show()

Två rader. Det är faktiskt allt som krävs för att gå från siffror till en bild. plt.plot() ritar linjen och plt.show() visar den i ett fönster (eller direkt i din notebook).

Det kommer inte att se mycket ut för världen ännu – inga etiketter, ingen titel, standarddesign. Det är poängen med nästa steg.

Steg 4: Lägg till etiketter, titel och grundläggande design

Ett diagram utan axel-etiketter eller en titel är ett diagram som ingen utom du kan tolka. Detta är det steg som de flesta nybörjare hoppar över och som de flesta kodgranskare kommer att påpeka.

plt.figure(figsize=(8, 5))
plt.plot(df["month"], df["revenue"], marker="o", linewidth=2, color="#2E86AB")
plt.title("Månadsintäkter (första halvåret)", fontsize=14, fontweight="bold")
plt.xlabel("Månad")
plt.ylabel("Intäkt (USD)")
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

Några saker värda att förstå här, eftersom var och en gör ett specifikt jobb:

  • plt.figure(figsize=(8, 5)) ställer in storleken på ritytan i tum innan något ritas på den.
  • marker="o" placerar en synlig punkt vid varje datapunkt, vilket gör det lättare ekakt se var dina mätningar ligger, snarare än bara den interpolerade linjen mellan dem.
  • plt.grid(True, alpha=0.3) lägger till ett svagt bakgrundsraster — användbart för att läsa av ungefärliga värden i diagrammet utan att det blir rörigt.
  • plt.tight_layout() justerar automatiskt marginalerna så att etiketter inte klipps av vid figurens kanter. Detta är lätt att glömma och är en vanlig orsak till avklippta axeletiketter.
Steg 5: Spara figuren till en fil

För en rapport, presentation eller blogginlägg vill du ha diagrammet som en bildfil snarare än bara visad på skärmen.

plt.savefig("monthly_revenue.png", dpi=150)

Anropa savefig() före plt.show() — så fort show() visar grafen rensar matplotlib figuren från minnet, och ett anrop till savefig() efteråt kan resultera in en tom bild. Parametern dpi (dots per inch) styr upplösningen; 150–300 är rimligt för utskriftskvalitet, medan 72–100 fungerar fint för webben.

Steg 6: Testa en annan graftyp

Linjediagram passar bra för kontinuerliga trender över tid. Men inte all data ser ut så. Om du jämför olika kategorier – till exempel intäkter för fem produktlinjer snarare än sex månader – kommunicerar ett stapeldiagram vanligtvis jämförelsen mycket tydligare:

plt.figure(figsize=(8, 5))
plt.bar(df["month"], df["revenue"], color="#2E86AB")
plt.title("Månadsintäkter (första halvåret)")
plt.xlabel("Månad")
plt.ylabel("Intäkt (USD)")
plt.tight_layout()
plt.show()

Det grundläggande mönstret — rityta, diagramanrop, etiketter, marginaler, spara — förblir exakt detsamma. När du väl kan detta mönster handlar växling mellan plot(), bar(), scatter() och hist() mest om att byta ut ett funktionsanrop och anpassa etiketterna efter behov.

Att välja rätt diagram

Det är värt att stanna upp vid detta innan du visualiserar något för en riktig publik. Det vanligaste misstaget i tidig datavisualisering är inte ett designfel — det är en felmatchning mellan diagramtyp och den fråga som ställs:

  • Linjediagram — en trend över en kontinuerlig variabel, vanligtvis tid
  • Stapeldiagram — jämför storlekar mellan diskreta kategorier
  • Spridningsdiagram (Scatter plot) — relationen mellan två kontinuerliga variabler
  • Histogram — fördelningen av en enskild variabel

Att välja rätt här är mycket viktigare än färgval. Ett vackert designat diagram som svarar på fel fråga är fortfarande ett felaktigt diagram.

Vägen vidare

Du har nu ett repeterbart mönster: läs in data i en DataFrame, välj en diagramtyp som matchar din fråga, rita den, lägg till etiketter och spara den. Härifrån är naturliga nästa steg:

  • Seaborn, för statistiska grafer (fördelningar, korrelationer, kategoriska jämförelser) med snyggare standardutseende och mindre kod.
  • Subplots, för att placera flera relaterade diagram i samma figur med plt.subplots().
  • Anpassade färgpaletter och teman, särskilt matplotlibs inbyggda stilar (t.ex. plt.style.use("seaborn-v0_8-whitegrid")) om du vill ha ett enhetligt utseende genom ett helt projekt.

Skillnaden mellan "ett diagram som tekniskt sett fungerar" och "ett diagram som tydligt kommunicerar" handlar nästan uteslutande om tydliga etiketter, rätt val av diagram och återhållsamhet – inte om att lära sig mer avancerade bibliotek. Bli bekväm med grunderna ovan, resten handlar främst om finjustering.