Ábra és tengely létrehozás
plt.figure() Új üres ábra létrehozása. Méret (figsize) állítható.
plt.subplots() Ábra + subplot rács létrehozása.
Alap grafikon típusok
plot(x, y) Vonaldiagram.
scatter(x, y) Pontdiagram.
bar(x, height) Oszlopdiagram.
hist(data, bins=…) Hisztogram (eloszlás vizsgálat).
boxplot(data) Dobozdiagram (medián, kvartilisek, outlierek).
imshow(matrix) 2D mátrix vizualizáció (hőtérkép jelleg).
Címek és tengelyfeliratok
set_title(“…”) / plt.title() Grafikon címe.
set_xlabel() / set_ylabel() Tengelyfeliratok.
Tengelyek kezelése
set_xlim() / set_ylim() Tengelyhatárok beállítása.
set_xticks() / set_yticks() Tick pozíciók megadása.
tick_params() Tick formázás.
Jelmagyarázat
legend() Jelmagyarázat megjelenítése.
Rács és stílus
grid(True) Rácsvonalak
plt.style.use(“style”) Beépített stílus alkalmazása.
Layout
tight_layout() Automatikus igazítás (ne fedjék egymást a címek).
subplots_adjust() Finom manuális layout szabályozás.
Extra vizualizációs elemek
colorbar() Színskála (imshow, scatter esetén).
annotate() Felirat beszúrása grafikonra.

Feladat

  1. Generálj 500 normál eloszlású adatot.
  2. Készíts 2×2 subplot elrendezést.
  3. Tartalmazza:
    1. Vonaldiagram (kumulatív összeg)
    2. Hisztogram
    3. Scatter plot
    4. Boxplot
  4. Használj:
    1. címet
    2. tengelyfeliratokat
    3. grid-et
    4. legend-et
    5. tengelykorlátot
    6. annotate-et
    7. style-t
    8. tight_layout-ot

 

import numpy as np import matplotlib.pyplot as plt

#Stílus
plt.style.use("ggplot")

#Adat generálás
np.random.seed(42)
data = np.random.randn(500)
x = np.arange(len(data))

#Ábra és subplotok
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

#1. VONALDIAGRAM
cumsum = np.cumsum(data)

axs[0,0].plot(x, cumsum, label="Kumulatív összeg")
axs[0,0].set_title("Vonaldiagram")
axs[0,0].set_xlabel("Index")
axs[0,0].set_ylabel("Érték")
axs[0,0].legend()
axs[0,0].grid(True)

#Tengelykorlát
axs[0,0].set_xlim(0, 500)

#Annotáció (maximum jelölése)
max_idx = np.argmax(cumsum)
axs[0,0].annotate("Maximum",
xy=(max_idx, cumsum[max_idx]),
xytext=(max_idx, cumsum[max_idx]+10),
arrowprops=dict())

#2. HISZTOGRAM

axs[0,1].hist(data, bins=30)
axs[0,1].set_title("Hisztogram")
axs[0,1].set_xlabel("Érték")
axs[0,1].set_ylabel("Gyakoriság")
axs[0,1].grid(True)

#3. SCATTER

y = np.random.randn(500)

sc = axs[1,0].scatter(data, y)
axs[1,0].set_title("Scatter plot")
axs[1,0].set_xlabel("X")
axs[1,0].set_ylabel("Y")
axs[1,0].grid(True)

#4. BOXPLOT

axs[1,1].boxplot(data)
axs[1,1].set_title("Boxplot")
axs[1,1].grid(True)

#Layout optimalizálás
plt.tight_layout()

plt.show()