Schonmal voraus, ich bin Neuling und habe mein erstes eigenes Projekt begonnen.
Ich möchte in meinem Projekt ausgewertete Daten in einer Grafik darstellen. Dies Funktioniert mit allen geplotteten Werten ausgenommen von "pCleanBoiler". Da stehe ich ein wenig auf dem Schlauch vielleicht kann da jemand nachhelfen.
Die Grafik soll folgende Datenausgeben:
pVb: Gesamtverbrauch
pWP: Verbrach Wärmepumpe
pCleanWP: Verbrauch ohne Wärmepumpe
pCleanBoiler: Verbrauch ohne WP und Boiler******** Hier ist das Problem
*****Der Wert muss zuerst ermittelt werden mit folgenden Abhängigkeiten:
- pCleanWP = pVb - pWP
- pBoiler= 4000
wenn pCleanWP > pBoiler soll pCleanBoiler = pCleanBoiler + pCleanWP - pBoiler
sonst soll:
pCleanBoiler = pCleanWP
Ich hoffe dies ist einigermassen verständlich

Besten Dank im Voraus für die Hilfe..
Hier meine Code:
Code: Alles auswählen
## Daten importieren
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
pd.plotting.register_matplotlib_converters() ## Pandas wird das Datum direkt in einem "Timeseries"-Format importieren,
# weshalb die Defaulteinstellungen von Matplotlib mit diesem Befehl angepasst werden.
df = pd.read_csv("Monat.csv", delimiter=';', header = 0)
df = df.set_index(pd.DatetimeIndex(df['Time']))
##############################################################################
# Spalten zuweisen
pPV = df["Pac PV (W)"].values # [W] Produktion PV
wPV = df["Ertrag PV (Wh)"].values
pVb = df["Pac Vb (W)"].values # [W] Gesamtverbrauch
wVb = df["Ertrag Vb (Wh)"].values
pWP = df["Pac WP (W)"].values # [W] Heizung
wWP = df["Ertrag WP (Wh)"].values
zapf = df["Zapfung"].values
tutc = df.index
lfStd = np.zeros(tutc.size)
for t in range(tutc.size):
# berechnet laufender Tag im Jahr
noDay = (tutc[t] - dt.datetime(tutc[0].year, 1, 1, 1)).days
# [h] berechnet laufende Stunde im Tag
noHou = tutc[t].hour + (tutc[t].minute)/60 + (tutc[t].second)/3600
lfStd[t] = noDay*24 + noHou
deltaT = lfStd[1] - lfStd[0] # [h]
# zum Dateframe Uhrzeit als Text
df = df.resample('5T').mean()
tutc = df.index
a=int(8*24/deltaT) # Anfangstag
e=int(a+1*24/deltaT) # Endtag
t = tutc[a:e]
pCleanBoiler = 0
pBoiler= 4000
pCleanBoiler = np.zeros(tutc.size)# [W] Array Leistung Heizstab
pCleanWP = pVb - pWP
for c in range(pPV.size):
if pCleanWP[c] > pBoiler:
pCleanBoiler = pCleanBoiler + pCleanWP[c] - pBoiler
else:
pCleanBoiler = pCleanWP[c]
plt.figure(1, figsize=(16,8)) # Grösse des Plots (figsize) in Zoll
plt.plot(t,pPV[a:e]/1000,'y', label ='Ertrag PV')
plt.plot(t,pVb[a:e]/1000,'r', label ='Verbrauch')
plt.plot(t,pCleanWP[a:e]/1000,'b', label ='Verbrauch Clean WP')
plt.plot(t,pCleanBoiler[a:e]/100000,'g', label ='Verbrauch Clean WP, Boiler')
plt.xlabel('Zeit [h]')
plt.ylabel('Leistung [W]')
plt.legend(loc="best")
#plt.savefig("C:\PythonAnaconda\Anaconda3 (64-bit)\Python38\Python38\Projekt/TagesbeispielLeistung.png")
plt.show()