Wizualizacja danych z CSV za pomocą matplotlib w Pythonie
Skrypt w Pythonie z biblioteką matplotlib pozwala szybko wizualizować dane z pliku CSV. W przykładzie używamy pliku LiLog.csv z kolumnami: numer wiersza, natężenie oświetlenia (Lx), temperatura, czas, data, znacznik Unix. Wykres budujemy na podstawie znacznika czasowego (6. kolumna) na osi X i natężenia oświetlenia (2. kolumna) na osi Y.
Wymagana instalacja: Python 3+, matplotlib, csv (wbudowany). Sprawdź interpreter poleceniem where python i zaktualizuj do czystej wersji, unikając bundli z Cygwin czy Inkscape.
Zainstaluj zależności:
pip install matplotlib numpy
Podstawowy skrypt dla wykresu 2D
Kod ładuje dane, parsuje CSV i rysuje linię:
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',') # Zmienione na przecinek dla przykładu
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
plt.plot(X, Y)
plt.title('Wykres liniowy z CSV')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Listy X i Y wypełniają się wartościami float z wybranych kolumn. csv.reader obsługuje separator (w przykładzie przecinek, sprawdź plik). plt.plot rysuje linię, show() otwiera okno.
Zaawansowany wykres z progiem i adnotacjami
Dodaj poziomą linię progu (63 Lx), siatkę, legendę, obrót etykiet:
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',')
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
threshold = 63.0
T = [threshold] * len(Y)
plt.plot(X, Y)
plt.plot(X, T)
plt.title('Zmiana natężenia oświetlenia')
plt.xlabel('Czas,[s]')
plt.ylabel('Poziom oświetlenia, [Lx]')
plt.grid()
plt.xticks(rotation=-90)
plt.legend(['oświetlenie', f'próg {threshold} Lx'])
plt.show()
Sprawdź długość tablic: print(len(X), len(Y)). Typy: list[float]. Interaktywność: powiększanie, panoramikowanie przez panel w oknie matplotlib.
Lista zależności i instalacja
Sprawdź pakiety: pip freeze. Typowy wynik dla matplotlib:
- contourpy==1.3.3
- cycler==0.12.1
- fonttools==4.62.1
- kiwisolver==1.5.0
- matplotlib==3.10.8
- numpy==2.4.4
Instalacja osobno: pip install matplotlib numpy.
Zalety matplotlib do wizualizacji danych
- Darmowy, open-source.
- Interaktywny: powiększanie, zapis do PNG, konfiguracja osi/siatki.
- Wieloplatformowy: Windows, Linux (z GUI).
- Kompilacja do EXE przez PyInstaller do dystrybucji.
- Minimalne artefakty: tylko plik .py.
- Automatyzacja bez GUI: uruchomienie z CLI.
Ograniczenia
- Wizualizacja w czasie rzeczywistym (COM/TCP) wymaga wątków lub FuncAnimation.
- Wydajność na dużych zbiorach: >1M punktów — optymalizuj z tablicami numpy.
Co ważne
- Używaj
numpydla tablic:X = np.array(X)przyspiesza plot. - Separator CSV: sprawdź
delimiter=','lub';', użyjpandasdla złożonych plików. - Osi:
plt.xlabel,plt.ylabelz jednostkami (s, Lx). - Legenda:
plt.legend(['dane', 'próg'])dla wielu linii. - Siatka:
plt.grid()poprawia czytelność.
Python + matplotlib — standard do szybkiej wizualizacji danych eksperymentalnych z CSV. Idealny do analizy logów sensorów, np. oświetlenie vs czas.
— Editorial Team
Brak komentarzy.