Zpět na domů

Vytváření grafů z CSV v Python matplotlib

Článek popisuje skripty pro vytváření 2D grafů z CSV s matplotlib. Příklady: základní plot, přidání prahu osvětlení, mřížka, legenda. Výhody a instalace balíčků.

Grafy z CSV: matplotlib v Python s příklady
Advertisement 728x90

Vizualizace dat z CSV pomocí matplotlib v Pythonu

Skript v Pythonu s knihovnou matplotlib umožňuje rychle vizualizovat data z CSV souboru. Pro příklad používáme soubor LiLog.csv s sloupci: číslo řádku, hodnota osvětlení (Lx), teplota, čas, datum, Unix timestamp. Graf je sestaven podle timestampu (6. sloupec) na ose X a osvětlení (2. sloupec) na ose Y.

Je potřeba instalace: Python 3+, matplotlib, csv (vestavěný). Zkontrolujte interpret pomocí příkazu where python a aktualizujte na čistou verzi, vyhněte se balíčkům z Cygwin nebo Inkscape.

Nainstalujte závislosti:

Google AdInline article slot
pip install matplotlib numpy

Základní skript pro 2D graf

Kód načte data, parsuje CSV a vykreslí čáru:

import matplotlib.pyplot as plt
import csv

X = []
Y = []

with open('LiLog.csv', 'r') as datafile:
    plotting = csv.reader(datafile, delimiter=',')  # Změněno na čárku pro příklad
    
    for ROWS in plotting:
        X.append(float(ROWS[5]))
        Y.append(float(ROWS[1]))

plt.plot(X, Y)
plt.title('Line Graph using CSV')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

Seznamy X a Y se naplní float hodnotami ze zadaných sloupců. csv.reader zpracovává oddělovač (v příkladu čárka, zkontrolujte soubor). plt.plot vykreslí čáru, show() otevře okno.

Rozšířený graf s prahem a anotacemi

Přidejte horizontální čáru prahu (63 Lx), mřížku, legendu, otočení popisků:

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('Illumination change')
plt.xlabel('Time,[s]')
plt.ylabel('Light level, [Lx]')
plt.grid()
plt.xticks(rotation=-90)
plt.legend(['illumination', f'threshold {threshold} Lx'])
plt.show()

Kontrola délky polí: print(len(X), len(Y)). Typy: list[float]. Interaktivita: zoom, posun pomocí panelu v okně matplotlib.

Seznam závislostí a instalace

Zkontrolujte balíčky: pip freeze. Typický výstup pro 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

Instalace po jednom: pip install matplotlib numpy.

Google AdInline article slot

Výhody matplotlib pro vizualizaci dat

  • Zdarma, open-source.
  • Interaktivní: zoom, uložení do PNG, nastavení os/mřížky.
  • Multiplatformní: Windows, Linux (s GUI).
  • Kompilace do EXE přes PyInstaller pro distribuci.
  • Minimální artefakty: jen .py soubor.
  • Automatizace bez GUI: spuštění z CLI.

Omezení

  • Real-time vykreslování (COM/TCP) vyžaduje threading nebo FuncAnimation.
  • Výkon na velkých datasetech: >1M bodů – optimalizujte s numpy arrays.

Důležité tipy

  • Používejte numpy pro pole: X = np.array(X) zrychlí plot.
  • Oddělovač CSV: zkontrolujte delimiter=',' nebo ';', pro složité soubory použijte pandas.
  • Osi: plt.xlabel, plt.ylabel s jednotkami (s, Lx).
  • Legenda: plt.legend(['data', 'threshold']) pro více čar.
  • Mřížka: plt.grid() zlepší čitelnost.

Python + matplotlib – standard pro rychlou vizualizaci experimentálních dat z CSV. Vhodné pro analýzu senzorových logů, jako osvětlení vs čas.

— Editorial Team

Advertisement 728x90

Číst dál