Dátová Vizualizácia v Pythone

Dáta bez vizualizácie sú len čísla v tabuľke. Správny graf dokáže okamžite odhaliť trendy, anomálie a vzťahy, ktoré by v surových dátach zostali skryté. Tento článok pokrýva tri hlavné Python knižnice a best practices pre tvorbu prehľadných grafov.


1. Prečo vizualizovať dáta

  • Rýchle pochopenie — graf spracujete za sekundy, tabuľku s 1000 riadkami nie
  • Odhaľovanie vzorcov — trendy, outliere, korelácie
  • Komunikácia — graf v prezentácii je silnejší ako čísla
  • Validácia — vizuálna kontrola dát pred analýzou (Anscombe's quartet)

2. Matplotlib — Základ všetkého

Matplotlib je najstaršia a najflexibilnejšia Python vizualizačná knižnica. Ostatné knižnice (Seaborn, Plotly) sú často postavené nad ňou.

Základný príklad:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(x, y, color='#2196F3', linewidth=2, label='sin(x)')
ax.set_title('Sínusová funkcia', fontsize=16)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.legend()
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('sinus.png', dpi=150)
plt.show()

Kedy použiť Matplotlib:

  • Plná kontrola nad každým pixelom
  • Vedecké publikácie
  • Subploty a komplexné layouty
  • Keď potrebujete export do rôznych formátov (PNG, SVG, PDF)

Object-oriented vs pyplot: Vždy preferujte fig, ax = plt.subplots() pred plt.plot() — je to čistejšie a škálovateľnejšie.


3. Seaborn — Štatistická vizualizácia

Seaborn je postavený nad Matplotlib a pridáva krásne predvolené štýly a jednoduché štatistické grafy.

Príklad — distribúcia a korelácia:

import seaborn as sns
import pandas as pd

# Distribúcia
df = pd.DataFrame({'vek': np.random.normal(35, 10, 1000)})
sns.histplot(data=df, x='vek', kde=True, color='#4CAF50')
plt.title('Distribúcia veku')
plt.show()

# Heatmapa korelácií
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', center=0)
plt.title('Korelačná matica')
plt.show()

Silné stránky Seaborn:

  • sns.pairplot() — okamžitý prehľad vzťahov medzi premennými
  • sns.boxplot() — porovnanie distribúcií medzi skupinami
  • sns.heatmap() — korelačné matice
  • Automatické farebné palety a estetika

Kedy použiť: Exploratívna dátová analýza (EDA), štatistické grafy, rýchle prototypovanie.


4. Plotly — Interaktívne grafy

Plotly vytvára interaktívne grafy s hover efektami, zoomom a exportom — ideálne pre dashboardy a webové aplikácie.

Príklad:

import plotly.express as px
import pandas as pd

df = pd.DataFrame({
    'mesiac': ['Jan', 'Feb', 'Mar', 'Apr', 'Máj', 'Jún'],
    'tržby': [120, 135, 148, 162, 155, 178],
    'náklady': [80, 85, 90, 95, 88, 92]
})

fig = px.bar(df, x='mesiac', y='tržby',
             title='Mesačné tržby 2026',
             color_discrete_sequence=['#FF9800'])
fig.update_layout(template='plotly_white')
fig.show()

Plotly Express vs Graph Objects:

  • plotly.express — rýchle, jednoduché, 1-2 riadky kódu
  • plotly.graph_objects — plná kontrola, komplexné vizualizácie

Kedy použiť: Webové dashboardy, prezentácie, interaktívna explorácia, Dash aplikácie.


5. Typy grafov — Kedy čo použiť

Typ grafu Účel Knižnica
Čiarový (line) Trend v čase Matplotlib, Plotly
Stĺpcový (bar) Porovnanie kategórií Všetky
Histogram Distribúcia jednej premennej Seaborn, Matplotlib
Scatter plot Vzťah dvoch premenných Všetky
Box plot Distribúcia + outliere Seaborn
Heatmapa Korelačná matica, matice Seaborn
Koláčový (pie) Podiel celku (max 5-6 kategórií) Plotly
Violin plot Distribúcia (bohatšia ako box) Seaborn

Pravidlo: Ak neviete aký graf použiť, začnite scatter plotom alebo histogramom — rýchlo odhalí, čo v dátach je.


6. Best Practices pre prehľadné grafy

Dizajn

  • Menej je viac — odstráňte zbytočné čiary, pozadie, 3D efekty
  • Čitateľné fonty — minimálne 12pt pre popisky osí
  • Kontrastné farby — vyhnite sa červená + zelená (farbnosleppí)
  • Konzistentná farebná paleta — jedna paleta pre celý projekt

Dátová integrita

  • Začínajte os Y od 0 (pri stĺpcových grafoch)
  • Neprezentujte korelace ako kauzalitu
  • Vždy pomenujte osi a pridajte jednotky
  • Uveďte zdroj dát pri prezentáciách

Export

  • Web/screen: PNG, 150 DPI
  • Tlač/publikácie: SVG alebo PDF, 300+ DPI
  • Prezentácie: svetlé pozadie, veľké fonty

7. Rýchle porovnanie knižníc

Matplotlib Seaborn Plotly
Interaktivita Nie Nie Áno
Krivka učenia Strmá Nízka Stredná
Estetika (default) Základná Krásna Moderná
Flexibilita Maximálna Stredná Vysoká
Veľkosť výstupu Malá (PNG) Malá (PNG) Väčšia (HTML/JS)
Najlepšie pre Publikácie EDA Dashboardy

8. Záver

Dátová vizualizácia je kľúčová zručnosť pre každého, kto pracuje s dátami. Začnite s Matplotlib pre pochopenie základov, prejdite na Seaborn pre rýchlu analýzu a používajte Plotly pre interaktívne prezentácie. Najdôležitejšie pravidlo: graf musí byť prehľadný a čitateľný — ak ho človek nepochopí za 5 sekúnd, je zle navrhnutý.

Odporúčané ďalšie čítanie: Machine Learning, Deep Learning, AI-Basics