SVG: Darstellungsproblem mit zwei bars in einem Plot. Bug?

Begonnen von vbs, 14 März 2015, 15:07:44

Vorheriges Thema - Nächstes Thema

vbs

Oje, hatte wohl den Mund zu voll genommen, als ich mit meinem letzten Thema das Ende meiner SVG-Probleme angekündigt habe  :-\

Ich habe irgendwie das Problem, dass ich Darstellungsfehler bekomme, sobald ich in einem Plot bei beiden Graphen "bars" benutze. Solange nur einer der beiden Graphen (egal welcher) "bars" benutzt, funktioniert alles.

Hier mein Plot. Ein Graph benutzt fsteps, der andere bars. Das klappt:
(https://dl.dropboxusercontent.com/u/24641738/fhem/svg_2bars_1.png)

Sobald ich nun aber den fsteps-Graph auch auf bars umstelle (so dass beide bars verwenden), dann sieht es komisch aus:
(https://dl.dropboxusercontent.com/u/24641738/fhem/svg_2bars_2.png)
Also die grünen Werte sind nur noch Striche. Ich habe das ganze auch noch mit einem anderen Plot ausprobiert, da passiert das gleiche: Sobald beide Werte "bars" verwenden, gibts nur noch Striche.

So sieht mein gplot-File aus:
# Created by FHEM/98_SVG.pm, 2015-03-13 15:40:30
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Stromverbrauch - <L1>durchschnitt (W)'
set ytics
set grid ytics
set ylabel "Verbrauch (W)"
set y2label "Verbrauch (kWh)"

#DbLog <SPEC1>:statPower<SPEC2>Last:::$val=~s/^Min..([\d.]*).Avg..([\d.]*)/$2/eg
#DbLog <SPEC1>:statEnergyOverallLast:::$val=~s/.*<SPEC2>:\s([-\d\.]*)\s.*/$1/eg;;$val=~s/-/0/g;;$val/=1000

plot "<IN>" using 1:2 axes x1y1 title 'Durchschnittsverbrauch (W)' ls l1fill lw 0.3 with bars,\
     "<IN>" using 1:2 axes x1y2 title 'Durchschnittsverbrauch (kWh)' ls l0fill lw 0.3 with bars



Ich halte das im Moment ehrlich gesagt für einen Bug. Oder übersehe ich etwas?

rudolfkoenig

Eigentlich sollte ich bars entfernen: ich meine es stammt nicht von mir, dokumentiert ist es auch nicht, ich habe keine Ahnung, wozu sie gut sind, und wer den Patch geschickt hat. Einen gnuplot Equivalenten gibts es auch nicht.

Laut Code-Kommentar sollte die Breite gleich der Zeit-Ticks auf der X-Achse sein, leider wurde diese Breite nach jede Linie dividiert durch den Skalierungsfaktor, das habe ich gefixt und eingecheckt. Wohin die Balken verschoben gehoeren, weiss ich auch nicht, ich verwende statt bars histeps.

vbs

Klasse, dankeschön! Werde ich testen!

Gegenüber histeps haben die bars mMn den Vorteil, dass durch die vertikalen Linien die Werte klar voneinander getrennt sind. Also bei tagesweisen Durchschnittswerten grenzen sich damit die einzelnen Tage gut voneinander ab.

Und wenn ich den Unterschied zwischen fsteps und histeps richtig verstehe, dann müsste man fsteps verwenden, wenn die Datenpunkte zeitlich am Ende des Bereichs liegen (wie bei mir). Bei histeps scheinen sie als Mittelpunkt des Bereichs interpretiert zu werden.

Also wenn man immer zum Abschluss einer Stunde zB um 14:59:59 ein Reading erzeugt, welches den Durchschnitt von 13:00-14:00 enthält, dann müsste man nach meinem Verständnis fsteps nehmen.

vbs


fiedel

Von mir auch vielen Dank! So wollte ich das immer haben und hatte bisher auch die fsteps- Krücke verwendet.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Haecksler


Prof. Dr. Peter Henning

Rudi, die bars stammten als Patch von mir - vor drei Jahren...

Und es war immer angedacht, die verschiedenen Optionen genauer zu dokumentieren.

LG

pah