import numpy as np import matplotlib.pyplot as plt import pandas as pd # Daten als DataFrame erstellen data = { "Datum": [ "31.12.2024", "18.07.2024", "31.12.2023", "31.10.2023", "30.09.2023", "12.06.2023", "01.02.2023", "31.12.2022", "30.06.2022", "01.02.2022", "31.12.2021", "03.11.2021", "18.05.2021", "01.02.2021", "31.12.2020", "31.12.2019", "01.09.2019" ], "Verbrauch (kWh)": [ 707, 608, 523, 472, 456, 432, 390, 364, 292, 267, 246, 218, 203, 189, 167, 95, 75 ], "Ablesungstyp": [ "Netzbetreiber", "Kunden", "Netzbetreiber", "Netzbetreiber", "Netzbetreiber", "Kunden", "Netzbetreiber", "Netzbetreiber", "Netzbetreiber", "Netzbetreiber", "Kunden", "Kunden", "Kunden", "Netzbetreiber", "Netzbetreiber", "Netzbetreiber", "Maschinelle Schätzung" ] } df = pd.DataFrame(data) df["Datum"] = pd.to_datetime(df["Datum"], format="%d.%m.%Y") df = df.sort_values("Datum") # Plot erstellen plt.figure(figsize=(12, 6)) plt.plot(df["Datum"], df["Verbrauch (kWh)"], marker='o', label="Verbrauch (kWh)") # Beschriftungen und Titel plt.title("Verbrauchsentwicklung (kWh) über Zeit", fontsize=14) plt.xlabel("Datum", fontsize=12) plt.ylabel("Verbrauch (kWh)", fontsize=12) plt.grid(True, linestyle='--', alpha=0.6) plt.legend() plt.xticks(rotation=45) plt.tight_layout() # Plot anzeigen plt.show() # Differenzen zwischen den Verbrauchswerten berechnen df["Differenz (kWh)"] = df["Verbrauch (kWh)"].diff() df["Tage zwischen Ablesungen"] = df["Datum"].diff().dt.days # Durchschnittlicher täglicher Verbrauch berechnen df["Durchschnittlicher Tagesverbrauch (kWh)"] = df["Differenz (kWh)"] / df["Tage zwischen Ablesungen"] # Durchschnittlicher monatlicher Verbrauch (30 Tage) berechnen df["Durchschnittlicher Monatsverbrauch (kWh)"] = df["Durchschnittlicher Tagesverbrauch (kWh)"] * 30 # Plot erstellen plt.figure(figsize=(12, 6)) plt.plot(df["Datum"], df["Verbrauch (kWh)"], marker='o', label="Verbrauch (kWh)") plt.plot(df["Datum"], df["Durchschnittlicher Monatsverbrauch (kWh)"], marker='x', linestyle='--', label="Durchschnittlicher Monatsverbrauch (kWh)") # Beschriftungen und Titel plt.title("Verbrauchsentwicklung (kWh) mit durchschnittlichem Monatsverbrauch", fontsize=14) plt.xlabel("Datum", fontsize=12) plt.ylabel("Verbrauch (kWh)", fontsize=12) plt.grid(True, linestyle='--', alpha=0.6) plt.legend() plt.xticks(rotation=45) plt.tight_layout() # Plot anzeigen plt.show()