Pandas & NumPy Academy · Oppitunti

Selitteet, otsikot ja kuvien tallentaminen

Lisätkää akseleiden selitteet, otsikko, selite ja asteikkomerkintöjen muotoilu ja tallentakaa julkaisutasoista grafiikkaa savefig()-menetelmällä.

Oppitunti 4/413 vaihetta

Selitteet, otsikot ja kuvien tallentaminen on ilmainen Pandas & NumPy Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Pandas & NumPy Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.

Kuvaajasta julkaisuun

Kaavio on tehokas vain, jos sen akselit on nimetty, otsikko selittää keskeisen havainnon ja kaavio tallennetaan käyttötarkoitukseen riittävän suurella tarkkuudella. Tällä oppitunnilla käsitellään viimeistelytoimia, joilla nopeasti tehdystä tutkivasta kuvaajasta muokataan raporttiin, koontinäyttöön tai tieteelliseen julkaisuun sopiva viimeistelty kuva: akselien selitteet, asteikkomerkintöjen muotoilu, otsikot, selitteet, huomautukset ja tiedostoon vienti.

Akselien selitteet metodeilla set_xlabel ja set_ylabel

Asettakaa kuvaavat akselien selitteet metodeilla ax.set_xlabel() ja ax.set_ylabel(). Ilmoittakaa selitteessä aina myös yksiköt (esimerkiksi 'Revenue (USD)' pelkän 'Revenue'-tekstin sijaan). Suurentakaa selitteitä esityksiä varten parametrilla fontsize ja lisätkää akselin sekä selitetekstin välistä tilaa parametrilla labelpad, jos asteikkomerkinnät ovat suuria.

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()

Otsikot metodeilla set_title ja suptitle

ax.set_title() asettaa otsikon yksittäisen Axes-olion yläpuolelle. Monipaneelisissa kuvissa fig.suptitle() lisää kaikille alikuvaajille yhteisen otsikon. Säätäkää fonttikokoa parametrilla fontsize ja pystysuuntaista sijaintia parametrilla y (oletusarvo 1.0). Hyvä otsikko kertoo kaavion tärkeimmän havainnon eikä vain sitä, mitä akselit esittävät — verratkaa otsikoita 'Monthly Revenue' ja '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()

Asteikkomerkintöjen hallinta

Matplotlibin oletusarvoiset asteikkomerkinnät ovat usein riittäviä, mutta joskus tarvitsette mukautettuja merkintöjä. Määrittäkää merkintöjen sijainnit komennolla ax.set_xticks() ja itse merkinnät komennolla ax.set_xticklabels(). Välittäkää rotation=45, jotta pitkät merkinnät kallistuvat eivätkä mene päällekkäin. Parametri ha='right' (vaakasuuntainen tasaus) varmistaa, että kallistetut merkinnät kiinnittyvät oikein omaan asteikkomerkkiinsä.

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()

Asteikkoarvojen muotoilu

Käyttäkää matplotlib.ticker-muotoilijoita asteikkoarvojen esittämiseen helposti luettavassa muodossa. FuncFormatter ottaa funktion, joka vastaanottaa asteikkoarvon ja palauttaa muotoillun merkkijonon. Yleisiä muotoiluja ovat tuhaterotin, valuuttamerkki, prosenttimerkki ja tieteellinen merkintätapa. Ottakaa muotoilu käyttöön komennolla 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()

Selitteet metodilla ax.legend()

Kutsukaa ax.legend()-metodia, jotta näytölle tulee selite kaikista piirtoelementeistä, joille on määritetty label-parametri. Voitte mukauttaa selitettä parametreilla loc (sijainti, esimerkiksi 'upper right' tai 'lower left'), ncol (sarakkeiden määrä), framealpha (kehyksen läpinäkyvyys) ja fontsize. Kun selite sijoitetaan piirtoalueen ulkopuolelle, käyttäkää bbox_to_anchor-parametria yhdessä loc-parametrin kanssa.

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()

Tekstihuomautusten lisääminen

ax.annotate(text, xy=(x_point, y_point), xytext=(x_text, y_text), arrowprops=...) lisää tekstiselitteen ja haluttaessa nuolen, joka osoittaa tiettyyn datapisteeseen. Käyttäkää tätä kaavion suurimpien arvojen, poikkeamien tai tärkeiden tapahtumien korostamiseen. arrowprops-sanakirja määrittää nuolen tyylin: arrowstyle='->' on yksinkertainen nuoli.

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()

Vaaka- ja pystysuuntaisten viiteviivojen lisääminen

ax.axhline(y_value) piirtää vaakasuuntaisen viivan koko Axes-olion leveydelle määritettyyn y-arvoon. ax.axvline(x_value) piirtää pystysuuntaisen viivan. Molemmat hyväksyvät parametrit color, linestyle ja linewidth. Viiteviivoilla merkitään usein tavoitteita, kynnysarvoja tai tapahtumapäiviä aikasarjakaavioihin.

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()

Tyylien käyttö teemojen avulla

Matplotlib sisältää useita valmiita tyylisivuja, jotka muuttavat kaikkien kuvien yleisilmettä ilman koodimuutoksia: 'seaborn-v0_8-whitegrid', 'fivethirtyeight', 'ggplot', 'bmh' ja muita. Ottakaa tyyli käyttöön komennolla plt.style.use('style_name') skriptin alussa. Käyttäkää plt.style.context('style_name')-kontekstinhallintaa, jos haluatte soveltaa tyyliä vain tietyn koodilohkon sisällä.

# 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()

Kuvien tallentaminen savefig()-metodilla

fig.savefig('filename.png') tallentaa kuvan tiedostoon. Tärkeitä parametreja ovat dpi (pistettä tuumalla — käyttäkää näyttöön arvoa 150 ja tulostukseen arvoa 300), bbox_inches='tight' (estää selitteiden leikkautumisen) ja format (päätellään tiedostopäätteestä tai määritetään erikseen). Yleisiä muotoja ovat '.png' (rasterikuva, sopii verkkoon), '.pdf' (vektorikuva, sopii tulostukseen) ja '.svg' (vektorikuva, jota voi muokata Illustratorissa).

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.')

Kokonainen esimerkki: viimeistelty raporttikaavio

Tässä on kokonainen työnkulku, jossa yhdistyvät kaikki tämän oppitunnin tekniikat: viimeistelty aikasarjakaavio, jossa on akselien selitteet, muotoillut y-akselin asteikkoarvot, vaakasuuntainen tavoiteviiva, huippuarvoa koskeva huomautus ja vienti tarkaksi PNG-kuvaksi. Tätä mallia käytätte kaikissa raporteissa tai koontinäytöissä käytettävissä kaavioissa.

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()

Pikatarkistus

Testatkaa tämän oppitunnin selitteitä, otsikoita ja kuvien tallentamista koskeva ymmärryksenne.

Oppitunnin kertaus

Tällä oppitunnilla opitte, että set_xlabel()/set_ylabel()/set_title() lisäävät kuvaavan tekstin; FuncFormatter muotoilee asteikkoarvot valuutoiksi tai prosenteiksi; ax.annotate() lisää nuolella osoittavia tekstiselitteitä tärkeiden datapisteiden korostamiseksi; axhline()/axvline() piirtävät viiteviivoja; ja fig.savefig() yhdessä parametrien dpi ja bbox_inches='tight' kanssa tuottaa julkaisulaatuisia kuvatiedostoja. Tämä päättää Matplotlib Fundamentals -kurssin — seuraavaksi tutustumme tilastollisiin kuvaajiin tarkoitetulla Seabornilla.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Selitteet, otsikot ja kuvien tallentaminen” ilmainen?

Kyllä – oppitunnin ”Selitteet, otsikot ja kuvien tallentaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Pandas & NumPy Academy-kurssin, päivitä CoddyKit PROhon. Pandas & NumPy Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Selitteet, otsikot ja kuvien tallentaminen”?

Lisätkää akseleiden selitteet, otsikko, selite ja asteikkomerkintöjen muotoilu ja tallentakaa julkaisutasoista grafiikkaa savefig()-menetelmällä. Harjoittelet Pandas & NumPy Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Pandas & NumPy Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Pandas & NumPy Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Selitteet, otsikot ja kuvien tallentaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Pandas & NumPy Academy-oppitunnilla?

Kyllä. Jokainen Pandas & NumPy Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kuvien ja akselien rakenne
  2. Viiva- ja pistekaaviot
  3. Pylväskaaviot ja histogrammit
  4. Selitteet, otsikot ja kuvien tallentaminen
← Takaisin: Pandas & NumPy Academy