Initialisierung
- Laden der Module:
- NumPy für Mathe-Funktionen
- Signal aus SciPy für Auswerte- und Filter-Funktionen (z.B. Glätten)
- Pandas zum Einlesen von CSV
- PyPlot aus MatPlotLib zum Plotten
In [1]:
import numpy as np
from scipy import signal as sig
import pandas as pd
from matplotlib import pyplot as plt
Einlesen und Aufbereiten der Daten
- Daten einlesen
- Extrahieren der einzelnen Spalten und konvertieren in Fließkommazahlen
- Berechnen der wirklichen x-Werte aus Sequenznummern
- Glätten der Kurve
In [2]:
data = pd.read_csv('New.csv')
# print(data)
x = np.array(data['X' ].values[1:].astype(float))
y1 = np.array(data['CH1' ].values[1:].astype(float))
y2 = np.array(data['CH2' ].values[1:].astype(float))
start = np.array(data['Start' ].values[0 ].astype(float))
increment = np.array(data['Increment'].values[0 ].astype(float))
x = x * increment + start
y1 = sig.savgol_filter(y1, 21, 5)
Plotten der Daten
- Figure und erste Achsen erzeugen
- Plotten des ersten Datensatzes
- Achsenbeschriftungen setzen
- Zweite Achsen erzeugen mit gemeinsamer x-Achse
- Plotten des zweiten Datensatzes
- Achse beschriften und formatieren
- Titel setzen
- Abspeichern
In [3]:
fig,ax1 = plt.subplots()
ax1.plot(x,y1,'-',color='tab:blue')
ax1.set_ylabel(r'Kondensatorspannung $U_\text{K}$ in V', color='tab:blue')
ax1.set_xlabel(r'Zeit in s')
ax1.tick_params(axis='y', labelcolor='tab:blue')
ax2 = ax1.twinx()
ax2.plot(x,y2,'-',color='tab:orange')
ax2.set_ylabel(r'Ladespannung $U_\text{L}$ in V', color='tab:orange')
ax2.tick_params(axis='y', labelcolor='tab:orange')
plt.title('Auf- und Entladen eines Kondensators')
fig.savefig("plot.pdf",bbox_inches='tight')
In [ ]: