Plot mit negativen Zahlen

Begonnen von Damian, 01 März 2020, 10:27:05

Vorheriges Thema - Nächstes Thema

Damian

Ich wollte den Stromverbrauch sowie die Stromerzeugung visualisieren.

Produktion sowie der Eigenverbrauch werden positiv geloggt, der Strombezug wird negativ geloggt. Die Flächen, die dann den Energieverbrauch/-produktion darstellen sollen, habe ich farblich ausfüllen lassen. Das Ergebnis sieht leider unbefriedigend aus (siehe Anhang). Die Flächen werden nicht zwischen der X-Achse (Null-Achse) und dem Y-Wert eingefärbt, sondern zwischen dem Y-Wert und dem niedrigsten Wert.

Lässt sich da im Plot etwas geschickt umkonfigurieren oder muss man es umprogrammieren?


 

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

Gefuellt wird die Flaeche zwischen der gezeichneten Linie und dem unteren Rand.


Damian

Zitat von: rudolfkoenig am 01 März 2020, 10:36:40
Gefuellt wird die Flaeche zwischen der gezeichneten Linie und dem unteren Rand.

ja, das ist aber nicht das, was man normalerweise bei negativen Werten bei Plots haben möchte (vgl. z. B. Excel).
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

Das habe ich schon kapiert, ich wollte nur "geht nicht" freundlicher verpacken.

Damian

Zitat von: rudolfkoenig am 01 März 2020, 10:56:26
Das habe ich schon kapiert, ich wollte nur "geht nicht" freundlicher verpacken.

Würde es nicht reichen (optional) für die Füllung den Bezugspunkt zu ändern (statt unteren Rand, den Nullwert nehmen)?

irgendwo hier:

$ret .=  sprintf(" %d,%d", $x+$dxp->[0], $y+$h) if($isFill && @{$dxp});

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig


Damian

Ohne es wirklich durchschaut zu haben, sieht das schon besser aus:

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Es dauert immer eine Weile bis man sich in ein fremdes Programm eingearbeitet hat. Im Anhang der Patch, basiert auf der aktuellen SVG-Version. Bei mir funktionieren auch alle bisherigen Plots mit der gepatchten Version.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rudolfkoenig

Danke fuer den Patch.

Du hast fuer die 3 steps eingebaut, ich habe es auch fuer line hizugefuegt, und etwas verschlankt.
Ich bin ziemlich sicher, dass es irgenwen stoeren wird, aber ich bin auf die Argumente gespannt, und habs deswegen eingecheckt.

Damian

#9
Zitat von: rudolfkoenig am 01 März 2020, 21:17:18
Ich bin ziemlich sicher, dass es irgenwen stoeren wird, aber ich bin auf die Argumente gespannt, und habs deswegen eingecheckt.

Bestimmt, da das Layout für negative Werte für Fill jetzt anders ist. Allerdings war die bisherige Darstellung für diese Fälle nicht sinnvoll.

Das Einzige, was mir noch aufgefallen ist, ist die Tatsache, dass die X-Achse falsch bestimmt wird, falls man die Untergrenze mit der Obergrenze vertauscht z. B. [4:-2], aber auch das macht wenig Sinn.

Edit: Ich habe auf die falsche Seite geschaut, die Darstellung ist korrekt, es fehlt in diesem Fall nur die Beschriftung der Y-Achse, das war aber auch vorher schon so.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Bei Temperatur Grafiken sieht es in der Tat jetzt etwas merkwürdig aus. Aber kein Grund das wieder zu ändern. :-)
Ich erd mich dran gewöhnen, oder vielleicht stell ich auf auf linie um anstatt fill.

Damian

Zitat von: Frank_Huber am 04 März 2020, 08:26:30
Bei Temperatur Grafiken sieht es in der Tat jetzt etwas merkwürdig aus. Aber kein Grund das wieder zu ändern. :-)
Ich erd mich dran gewöhnen, oder vielleicht stell ich auf auf linie um anstatt fill.

Wie sieht es denn bei dir jetzt aus?

Kannst du ein Bild posten?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Zitat von: Damian am 04 März 2020, 08:59:10
Wie sieht es denn bei dir jetzt aus?
Kannst du ein Bild posten?
Aber klar doch, Gestern hatte mein 1wire Bus oder die Stromversorgung Probleme, dadurch gehen die negativen Peaks so tief.

Damian

Zitat von: Frank_Huber am 04 März 2020, 09:09:05
Aber klar doch, Gestern hatte mein 1wire Bus oder die Stromversorgung Probleme, dadurch gehen die negativen Peaks so tief.

OK. Dann reden wir hier von 'Gewohnheit'. Schraffierte Fläche der Aussentemperatur bis zum unteren Rand, wie bisher, würde optisch nur die anderen Kurven unnötig verdecken und wäre auch mathematisch betrachtet als Flächenintegral Blödsinn.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Ja, reine Gewohnheit. Einmal in den Anfangszeiten so eingerichtet und nie geändert. :-)
Aber jetzt ist es dann halt doch an der Zeit das anzupassen.