Matplotlib vs Seaborn
Tworzenie wizualizacji danych w Pythonie: Matplotlib kontra Seaborn
Wizualizacja danych jest kluczowym elementem analizy danych, ponieważ umożliwia szybkie zrozumienie wzorców, zależności i trendów ukrytych w danych. W Pythonie dwie najbardziej popularne biblioteki do tworzenia wizualizacji to Matplotlib i Seaborn. Każda z nich ma swoje zalety i zastosowania, dlatego w tym artykule porównamy je, aby pomóc Ci wybrać odpowiednie narzędzie dla Twoich potrzeb.
Autorem opracowania jest Natalia Kustra, Analityka gospodarcza I rok, II stopień, 2025
1. Wprowadzenie do Matplotlib i Seaborn
Matplotlib
Matplotlib to najbardziej wszechstronna i podstawowa biblioteka do tworzenia wykresów w Pythonie. Oferuje ogromną elastyczność, umożliwiając tworzenie niemal każdego rodzaju wykresu, od prostych linii po skomplikowane wykresy 3D. Jednak ta elastyczność często wymaga pisania większej ilości kodu.
Przykład prostego wykresu liniowego w Matplotlib:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 12, 8, 15, 10]
plt.plot(x, y, label=’Dane’)
plt.title(‘Wykres liniowy’)
plt.xlabel(‘X’)
plt.ylabel(‘Y’)
plt.legend()
plt.show()
Seaborn
Seaborn to biblioteka zbudowana na podstawie Matplotlib, która koncentruje się na uproszczeniu procesu tworzenia wizualizacji. Jest szczególnie użyteczna dla analizy danych statystycznych i oferuje bardziej estetyczne domyślne style wykresów.
Przykład wykresu punktowego w Seaborn:
import seaborn as sns
import matplotlib.pyplot as plt
# Przykładowe dane
import pandas as pd
import numpy as np
data = pd.DataFrame({
‘X’: np.random.rand(50),
‘Y’: np.random.rand(50)
})
sns.scatterplot(x=’X’, y=’Y’, data=data)
plt.title(‘Wykres punktowy’)
plt.show()
2. Porównanie kluczowych cech
Elastyczność
- Matplotlib:
- Umożliwia pełną kontrolę nad każdym aspektem wykresu.
- Sprawdzi się w przypadku niestandardowych i zaawansowanych wizualizacji.
- Kod bywa dłuższy i bardziej skomplikowany.
- Seaborn:
- Jest zoptymalizowany do tworzenia standardowych wykresów statystycznych, takich jak wykresy pudełkowe, histogramy, czy wykresy gęstości.
- Idealny do szybkiej eksploracji danych.
- Mniejsza elastyczność w porównaniu z Matplotlib.
Łatwość użycia
- Matplotlib:
- Wymaga bardziej szczegółowej konfiguracji wykresów.
- Dla początkujących może być trudniejsza w użyciu.
- Seaborn:
- Intuicyjne API pozwala na tworzenie skomplikowanych wizualizacji za pomocą kilku linii kodu.
- Świetnie integruje się z biblioteką Pandas.
Wygląd wykresów
- Matplotlib:
- Domyślne style wykresów są podstawowe i wymagają dostosowania.
- Wymaga ręcznego dostrajania, aby uzyskać estetyczne efekty.
- Seaborn:
- Domyślnie oferuje bardziej estetyczne i nowoczesne style.
- Obsługuje palety kolorów, które są przydatne w analizie danych statystycznych.
Wydajność
- Matplotlib:
- Może być nieco wolniejszy przy tworzeniu dużych wykresów, zwłaszcza w przypadku skomplikowanych animacji.
- Seaborn:
- Działa szybciej dla prostych wizualizacji, ale bazuje na Matplotlib, więc w dużej mierze dzieli jej ograniczenia wydajnościowe.
3. Przykłady praktyczne
Wykres słupkowy: Matplotlib vs. Seaborn
Matplotlib:
categories = [‘A’, ‘B’, ‘C’, ‘D’]
values = [5, 7, 3, 8]
plt.bar(categories, values, color=’skyblue’)
plt.title(‘Wykres słupkowy w Matplotlib’)
plt.xlabel(‘Kategorie’)
plt.ylabel(‘Wartości’)
plt.show()
Seaborn:
data = pd.DataFrame({‘Kategorie’: [‘A’, ‘B’, ‘C’, ‘D’], ‘Wartości’: [5, 7, 3, 8]})
sns.barplot(x=’Kategorie’, y=’Wartości’, data=data, palette=’Blues’)
plt.title(‘Wykres słupkowy w Seaborn’)
plt.show()
Wykres pudełkowy:
Matplotlib:
values = [7, 8, 5, 6, 9, 10, 6, 7, 8]
plt.boxplot(values)
plt.title(‘Wykres pudełkowy w Matplotlib’)
plt.show()
Seaborn:
sns.boxplot(data=values, color=’lightblue’)
plt.title(‘Wykres pudełkowy w Seaborn’)
plt.show()
4. Kiedy wybrać Matplotlib, a kiedy Seaborn?
- Wybierz Matplotlib, jeśli:
- Potrzebujesz pełnej kontroli nad wyglądem wykresów.
- Tworzysz niestandardowe wizualizacje lub animacje.
- Chcesz korzystać z funkcji 3D.
- Wybierz Seaborn, jeśli:
- Chcesz szybko tworzyć estetyczne wykresy z danymi w Pandas.
- Analizujesz dane statystyczne.
- Potrzebujesz domyślnie dobrze wyglądających wykresów.
5. Podsumowanie
Matplotlib i Seaborn to potężne narzędzia do wizualizacji danych, ale każde z nich ma swoje unikalne zastosowania. Matplotlib zapewnia elastyczność i kontrolę, podczas gdy Seaborn pozwala szybko tworzyć estetyczne wizualizacje. Wybór między nimi zależy od Twoich potrzeb i doświadczenia.
Jeśli dopiero zaczynasz, warto zacząć od Seaborn, aby zaoszczędzić czas i skupić się na analizie danych. W miarę zdobywania doświadczenia Matplotlib pozwoli Ci na tworzenie bardziej zaawansowanych wykresów.
