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')
No description has been provided for this image
In [ ]: