import matplotlib
matplotlib.use('Agg')  # Verwenden Sie das Agg-Backend für headless rendering
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import sys
from pathlib import Path

# Laden Sie die CSV-Datei
file_path = sys.argv[1]  # Pfad zur CSV-Datei
data = pd.read_csv(file_path)

time_values_ms = data.iloc[:, 0].values  # Zeitwerte aus der ersten Spalte
ekg_signal = data.iloc[:, 1].values   # Die EKG-Werte befinden sich in der zweiten Spalte

time_values_min = time_values_ms / 60000  # Umrechnen von ms in Minuten

# Festlegen der Anzahl der Punkte pro Zeile und der Anzahl der Zeilen
samples_per_line = 6000  # Anzahl der Datenpunkte pro Zeile (anpassbar)
num_lines = int(np.ceil(len(ekg_signal) / samples_per_line))
height_per_line = 1.0  # Höhe jedes Subplots
#total_height = num_lines * height_per_line

# Erzeugen der Hauptfigur mit mehreren Unterplots
fig, axes = plt.subplots(num_lines, 1, figsize=(15, height_per_line * num_lines), sharex=False)

# Wenn nur eine Zeile vorhanden ist, dann ist `axes` kein Array; wir müssen es dann in eine Liste umwandeln
if num_lines == 1:
    axes = [axes]

# Plotten der EKG-Daten in jedem Unterplot
for i in range(num_lines):
    start_index = i * samples_per_line
    end_index = min(start_index + samples_per_line, len(ekg_signal))  # Endindex sicherstellen
    
    # Plot in der entsprechenden Untergrafik (Zeile)
    x_values = time_values_min[start_index:end_index]  # Verwenden Sie die Zeitwerte
    y_values = ekg_signal[start_index:end_index]   # Die entsprechenden EKG-Werte
    
    axes[i].plot(x_values, y_values, color='#000080', linewidth=0.3)
#    axes[i].set_ylabel(f'Zeile {i + 1}')  # Bezeichner für jede Zeile hinzufügen
#    axes[i].grid(True)  # Raster hinzufügen, um die Lesbarkeit zu verbessern
#    axes[i].xaxis.grid(True)
    axes[i].set_yticks([])

# Gemeinsame X-Achsenbeschriftung
axes[-1].set_xlabel('Zeit (Minuten)')

# Titel hinzufügen
fig.suptitle(sys.argv[1])

plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.savefig(Path(file_path).stem+'.svg')  # Speichern Sie die Grafik in einer Datei
