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ýmisns.boxplot()— porovnanie distribúcií medzi skupinamisns.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óduplotly.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