Files
python_template/lib/dia.py
T
2025-04-04 10:32:52 +02:00

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()