Etiketter, titler og lagring af figurer
Tilføj akseetiketter, en titel, en signaturforklaring og format til aksemærker, og gem derefter figurer i publikationskvalitet med savefig().
Etiketter, titler og lagring af figurer er en gratis Pandas & NumPy Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Pandas & NumPy Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Pandas & NumPy Academy-kurset indeholder 4 lektioner i alt.
Fra plot til publikation
Et diagram er kun effektivt, hvis akserne er mærket, titlen forklarer hovedpointen, og diagrammet gemmes i en tilstrækkelig høj opløsning til det tilsigtede medie. Denne lektion gennemgår de sidste detaljer, der forvandler et hurtigt udforskende plot til en gennemarbejdet figur, der egner sig til en rapport, et dashboard eller en akademisk publikation: akseetiketter, formatering af markeringer, titler, signaturforklaringer, annotationer og fileksport.
Akseetiketter med set_xlabel og set_ylabel
Angiv beskrivende akseetiketter med ax.set_xlabel() og ax.set_ylabel(). Medtag altid enheder i etiketten (f.eks. 'Revenue (USD)' i stedet for blot 'Revenue'). Brug fontsize til at gøre etiketter større til præsentationer, og labelpad til at tilføje afstand mellem aksen og etiketteksten, når markeringerne er store.
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(7, 4))
x = np.arange(1, 13)
y = np.random.randint(100, 500, 12)
ax.plot(x, y, 'o-', color='steelblue')
ax.set_xlabel('Month', fontsize=12, labelpad=8)
ax.set_ylabel('Revenue (USD thousands)', fontsize=12, labelpad=8)
# plt.show()
plt.close()Titler med set_title og suptitle
ax.set_title() angiver titlen over et enkelt Axes-objekt. Til figurer med flere paneler tilføjer fig.suptitle() en fælles titel over alle underplot. Du kan styre skriftstørrelsen med fontsize og den lodrette placering med y (standardværdien er 1.0). En god titel angiver diagrammets vigtigste indsigt, ikke blot hvad akserne viser — sammenlign 'Monthly Revenue' med 'Revenue Peaked in Q3 and Fell 20% in Q4'.
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
ax1.plot([1,2,3], [1,4,9])
ax1.set_title('Subplot One', fontsize=11)
ax2.bar(['A','B','C'], [3,7,2])
ax2.set_title('Subplot Two', fontsize=11)
# Shared figure title
fig.suptitle('Annual Overview Dashboard', fontsize=14, fontweight='bold', y=1.02)
plt.tight_layout()
plt.close()Styring af aksemarkeringernes etiketter
Matplotlibs standardetiketter for aksemarkeringer er ofte tilstrækkelige, men nogle gange har du brug for tilpassede etiketter. Brug ax.set_xticks() til at angive markeringernes placeringer og ax.set_xticklabels() til at angive etiketterne. Angiv rotation=45 for at dreje lange etiketter, så de ikke overlapper. Parameteren ha='right' (vandret justering) sikrer, at drejede etiketter forankres korrekt ved deres markering.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
values = np.random.randint(200, 600, 12)
fig, ax = plt.subplots(figsize=(9, 4))
ax.bar(range(12), values, color='steelblue')
ax.set_xticks(range(12))
ax.set_xticklabels(months, rotation=45, ha='right', fontsize=10)
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()Formatering af markeringsværdier
Brug formateringsklasserne i matplotlib.ticker til at vise markeringsværdier i et letlæseligt format. FuncFormatter modtager en funktion, der får markeringsværdien og returnerer en formateret streng. Almindelige mønstre er tusindtalsseparator, valutasymbol, procenttegn og videnskabelig notation. Anvend formateringen med ax.yaxis.set_major_formatter(formatter).
from matplotlib.ticker import FuncFormatter
def millions_fmt(x, pos):
return f'${x/1e6:.1f}M'
fig, ax = plt.subplots(figsize=(7, 4))
ax.bar(['Q1', 'Q2', 'Q3', 'Q4'], [1.2e6, 1.8e6, 2.1e6, 1.9e6], color='steelblue')
ax.yaxis.set_major_formatter(FuncFormatter(millions_fmt))
ax.set_title('Quarterly Revenue')
ax.set_ylabel('Revenue')
plt.tight_layout()
plt.close()Signaturforklaringer med ax.legend()
Kald ax.legend() for at vise en signaturforklaring for alle diagramelementer, hvor parameteren label er angivet. Tilpas den med loc (placering, f.eks. 'upper right' eller 'lower left'), ncol (antal kolonner), framealpha (boksens gennemsigtighed) og fontsize. Hvis signaturforklaringen skal placeres uden for diagramområdet, skal du bruge bbox_to_anchor sammen med loc.
fig, ax = plt.subplots(figsize=(7, 4))
for region, color in [('East','steelblue'),('West','coral'),('North','green')]:
ax.plot(range(12), np.random.randint(100, 400, 12),
marker='o', label=region, color=color)
ax.legend(loc='upper right', ncol=1, framealpha=0.8, fontsize=10)
ax.set_title('Monthly Sales by Region')
plt.close()Tilføjelse af tekstannotationer
ax.annotate(text, xy=(x_point, y_point), xytext=(x_text, y_text), arrowprops=...) tilføjer en tekstetiket med en valgfri pil, der peger på et bestemt datapunkt. Brug dette til at fremhæve maksimumværdier, afvigelser eller vigtige begivenheder i et diagram. Ordbogen arrowprops styrer pilens udseende: arrowstyle='->' er en simpel pil.
y_vals = np.array([120, 180, 310, 250, 420, 380, 290])
x_vals = np.arange(len(y_vals))
peak_idx = np.argmax(y_vals)
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x_vals, y_vals, 'o-', color='steelblue')
ax.annotate(f'Peak: {y_vals[peak_idx]}',
xy=(peak_idx, y_vals[peak_idx]),
xytext=(peak_idx - 2, y_vals[peak_idx] + 30),
arrowprops={'arrowstyle': '->', 'color': 'red'},
fontsize=10, color='red')
plt.close()Tilføjelse af vandrette og lodrette referencelinjer
ax.axhline(y_value) tegner en vandret linje over hele bredden af Axes-objektet ved den angivne y-værdi. ax.axvline(x_value) tegner en lodret linje. Begge accepterer parametrene color, linestyle og linewidth. Referencelinjer bruges ofte til at markere mål, tærskler eller hændelsesdatoer i tidsseriediagrammer.
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randint(100, 400, 10), 'o-', color='steelblue')
# Target line
ax.axhline(y=250, color='red', linestyle='--', lw=1.5, label='Target')
# Event line
ax.axvline(x=5, color='orange', linestyle=':', lw=1.5, label='Campaign start')
ax.legend()
ax.set_title('Revenue vs Target')
plt.close()Formatering med temaer
Matplotlib indeholder flere indbyggede stilark, der ændrer det overordnede udseende af alle figurer uden ændringer i koden: 'seaborn-v0_8-whitegrid', 'fivethirtyeight', 'ggplot', 'bmh' osv. Anvend en stil med plt.style.use('style_name') i begyndelsen af dit script. Brug plt.style.context('style_name') som konteksthåndtering for kun at anvende en stil i en bestemt kodeblok.
# Apply a style globally
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(range(10), np.random.randn(10).cumsum())
ax.set_title('Seaborn Whitegrid Style')
plt.close()
# Reset to default
plt.rcdefaults()Gemning af figurer med savefig()
fig.savefig('filename.png') gemmer figuren i en file. Vigtige parametre er: dpi (punkter pr. tomme — brug 150 til skærm og 300 til tryk), bbox_inches='tight' (forhindrer, at etiketter bliver beskåret) og format (udledes af filendelsen eller angives eksplicit). Almindelige formater er '.png' (rasterformat, velegnet til web), '.pdf' (vektorformat, velegnet til tryk) og '.svg' (vektorformat, kan redigeres i Illustrator).
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(range(10), np.random.randn(10), 'o-')
ax.set_title('Export Example')
ax.set_xlabel('Step')
ax.set_ylabel('Value')
# Save as PNG (screen quality)
fig.savefig('/tmp/chart_screen.png', dpi=150, bbox_inches='tight')
# Save as PDF (print quality)
fig.savefig('/tmp/chart_print.pdf', dpi=300, bbox_inches='tight')
plt.close()
print('Figures saved.')Komplet eksempel: gennemarbejdet diagram til en rapport
Her er en komplet arbejdsgang, der kombinerer alle teknikkerne i denne lektion: et gennemarbejdet tidsseriediagram med akseetiketter, formaterede y-aksemarkeringer, en vandret mållinje, en annotation ved toppunktet og eksport til en PNG-fil i høj opløsning. Dette er det mønster, du skal bruge til alle diagrammer, der indgår i en rapport eller et dashboard.
from matplotlib.ticker import FuncFormatter
fig, ax = plt.subplots(figsize=(9, 5))
months = list(range(1, 13))
revenue = [120, 145, 132, 160, 175, 190, 210, 185, 220, 200, 240, 260]
peak = max(revenue)
peak_idx = revenue.index(peak)
ax.plot(months, revenue, 'o-', color='steelblue', lw=2, markersize=6)
ax.axhline(y=180, color='red', ls='--', lw=1.2, label='Target: $180K')
ax.annotate(f'Peak ${peak}K', xy=(peak_idx+1, peak),
xytext=(peak_idx-1.5, peak+15),
arrowprops={'arrowstyle': '->'}, fontsize=9)
ax.set_xticks(months)
ax.set_xticklabels(['Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec'], rotation=45, ha='right')
ax.yaxis.set_major_formatter(FuncFormatter(lambda x,p: f'${x:.0f}K'))
ax.set_title('2024 Monthly Revenue vs Target', fontsize=13, fontweight='bold')
ax.set_ylabel('Revenue')
ax.legend()
plt.tight_layout()
plt.close()Hurtigt tjek
Test din forståelse af etiketter, titler og lagring af figurer fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at set_xlabel()/set_ylabel()/set_title() tilføjer beskrivende tekst; FuncFormatter formaterer markeringsværdier som valuta eller procenter; ax.annotate() tilføjer tekstetiketter med pile for at fremhæve vigtige datapunkter; axhline()/axvline() tegner referencelinjer; og fig.savefig() med dpi og bbox_inches='tight' opretter eksporterede figurer i publikationskvalitet. Dette afslutter kurset Matplotlib Fundamentals — nu skal vi se på Seaborn til statistiske diagrammer.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Etiketter, titler og lagring af figurer” gratis?
Ja — hele teksten til “Etiketter, titler og lagring af figurer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Pandas & NumPy Academy-kurset, skal du opgradere til CoddyKit PRO. Pandas & NumPy Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Etiketter, titler og lagring af figurer”?
Tilføj akseetiketter, en titel, en signaturforklaring og format til aksemærker, og gem derefter figurer i publikationskvalitet med savefig(). Du øver dig i Pandas & NumPy Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Pandas & NumPy Academy?
Der kræves ingen tidligere erfaring. Pandas & NumPy Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Etiketter, titler og lagring af figurer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Pandas & NumPy Academy-lektion?
Ja. Alle Pandas & NumPy Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Arkitekturen for Figure og Axes
- Linje- og punktdiagrammer
- Søjlediagrammer og histogrammer
- Etiketter, titler og lagring af figurer