70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
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()
|