CSV-Daten mit Matplotlib in Python visualisieren
Ein Python-Skript mit der Bibliothek matplotlib ermöglicht es, blitzschnell Visualisierungen aus CSV-Dateien zu erstellen. Dieses Beispiel nutzt eine Datei namens LiLog.csv mit Spalten für Zeilennummer, Lichtstärke (Lx), Temperatur, Zeit, Datum und Unix-Timestamp. Das Diagramm zeigt den Timestamp (Spalte 6) auf der X-Achse und die Lichtstärke (Spalte 2) auf der Y-Achse.
Du benötigst Python 3+, matplotlib und das integrierte csv-Modul. Überprüfe deinen Python-Interpreter mit where python und verwende eine saubere Installation, vermeide Bundles aus Cygwin oder Inkscape.
Installiere die Abhängigkeiten:
pip install matplotlib numpy
Basis-Skript für 2D-Liniendiagramm
Dieser Code lädt die Daten, parst die CSV-Datei und zeichnet eine Linie:
import matplotlib.pyplot as plt
import csv
X = []
Y = []
with open('LiLog.csv', 'r') as datafile:
plotting = csv.reader(datafile, delimiter=',') # Komma für dieses Beispiel
for ROWS in plotting:
X.append(float(ROWS[5]))
Y.append(float(ROWS[1]))
plt.plot(X, Y)
plt.title('Liniendiagramm aus CSV')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Die Listen X und Y werden mit Float-Werten aus den angegebenen Spalten gefüllt. csv.reader behandelt den Trennzeichen (hier Komma – prüfe deine Datei). plt.plot zeichnet die Linie, und show() öffnet das Fenster.
Erweiterte Grafik mit Schwellenwertlinie und Beschriftungen
Füge eine horizontale Schwellenwertlinie (63 Lx), Gitter, Legende und gedrehte Beschriftungen hinzu:
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('Änderung der Beleuchtung')
plt.xlabel('Zeit,[s]')
plt.ylabel('Lichtstärke, [Lx]')
plt.grid()
plt.xticks(rotation=-90)
plt.legend(['Beleuchtung', f'Schwellenwert {threshold} Lx'])
plt.show()
Prüfe die Array-Längen mit print(len(X), len(Y)). Datentypen sind list[float]. Interaktive Funktionen umfassen Zoom und Verschieben über die Toolbar des matplotlib-Fensters.
Abhängigkeiten und Installation
Installierte Pakete auflisten: pip freeze. Typische matplotlib-Ausgabe:
- contourpy==1.3.3
- cycler==0.12.1
- fonttools==4.62.1
- kiwisolver==1.5.0
- matplotlib==3.10.8
- numpy==2.4.4
Einzeln installieren: pip install matplotlib numpy.
Warum Matplotlib für Datenvisualisierung super ist
- Kostenlos und Open Source.
- Interaktiv: Zoomen, als PNG speichern, Achsen und Gitter anpassen.
- Plattformübergreifend: Windows, Linux (mit GUI).
- Zu EXE packen mit PyInstaller für einfaches Teilen.
- Minimaler Footprint: Nur eine .py-Datei.
- Headless-Automatisierung: Von der Kommandozeile ohne GUI ausführen.
Einschränkungen
- Echtzeit-Plotting (z. B. COM/TCP-Streams) erfordert Threading oder FuncAnimation.
- Große Datensätze (>1 Mio. Punkte) können langsam werden – optimiere mit numpy-Arrays.
Wichtige Tipps
- Nutze
numpyfür Arrays:X = np.array(X)beschleunigt das Plotten. - CSV-Trennzeichen: Probiere
delimiter=','oder';', oder wechsle zupandasfür komplexe Dateien. - Achsenbeschriftungen:
plt.xlabel,plt.ylabelmit Einheiten (s, Lx). - Legende:
plt.legend(['Daten', 'Schwellenwert'])für mehrere Linien. - Gitter:
plt.grid()verbessert die Lesbarkeit.
Python + matplotlib ist die Top-Kombo für schnelle Visualisierungen von Experimentaldaten aus CSV-Dateien. Ideal für die Analyse von Sensorlogs, wie Lichtstärken über die Zeit.
— Editorial Team
Noch keine Kommentare.