Powrót do strony głównej

Tworzenie wykresów z CSV w Python matplotlib

Artykuł opisuje skrypty do tworzenia wykresów 2D z CSV za pomocą matplotlib. Przykłady: podstawowy plot, dodanie progu oświetlenia, siatka, legenda. Zalety i instalacja pakietów.

Wykresy z CSV: matplotlib w Python z przykładami
Advertisement 728x90

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:

Google AdInline article slot
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:

Google AdInline article slot
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.

Google AdInline article slot

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 numpy dla tablic: X = np.array(X) przyspiesza plot.
  • Separator CSV: sprawdź delimiter=',' lub ';', użyj pandas dla złożonych plików.
  • Osi: plt.xlabel, plt.ylabel z 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

Advertisement 728x90

Czytaj dalej