SVG-Plot: Startwert bei logarithmischer Y-Achse

Begonnen von KiK, 16 Juni 2019, 22:02:02

Vorheriges Thema - Nächstes Thema

KiK

Hallo,

gibt es eine Möglichkeit beim SVG-Plot mit logarithmischer Y-Achse den Achsen-Startwert zu setzen?
Siehe Bild_1: In meinem Fall hätte ich gerne, dass die Y-Achse bei "100" startet und nicht mit "0,5" oder "1".

Änderungen mittels:
set yrange [100:40000]
set y2range [100:40000]

... haben nicht den gewünschten Erfolg (Bild_2) - es werden lediglich die horizontalen Linien erst ab "100" dargestellt.

Gruß

rudolfkoenig

Abgesehen davon dass range mit log (halbwegs?) ignoriert wird (es hat zwar eine Auswirkung, nur nicht so, wie man es erfhofft), es werden auch unsichtbare Ticks generiert: wenn man in fhem.cfg.demo / SVG_01_Garden die rechte Seite auf log umstellt, und range mit [14:] beschraenkt, dann werden neben den sichtbaren Ticks 14,16,18,20 auch noch die Unsichtbaren 1.4,1.6,1.8 und 2 generiert. Predicted Temp ist erst ab 6.6 sichtbar. Ohne Beschraenkung lauft die Skala von 10 bis 20, und Predicted Temp ist ab 3.8 sichtbar.

Der log-Patch ist etwa 3 Jahre alt (https://forum.fhem.de/index.php/topic,53487) und offensichtlich habe ich es nie richtig verstanden.
Ich habe den Patch Autor um Hilfe gebeten.

justme1968

mit der angehängten 98_SVG.pm version sollte y start wert berücksichtigt werden.

damit 'Display plot values' ebenfalls geht ist die angehängte svg.js nötig.


allgemein: ich habe bei mir für alle log plots die plotsize gesetzt damit die plots alle deutlich höher werden. eine höhe von knapp 200 pixeln finde ich auch mit log darstellung einfach zu klein wenn der wertebereich über 5 oder 6 größenordnungen geht.


@rudi: unabhängig von der hier angehängten version: das automatisch erzeugen der y ticks funktioniert nur dann sinnvoll wenn die y achse einen grossen wertebereich hat der mehrere größenordnungen umfasst. wenn der wertebereich zu klein ist (ein paar bis ein paar 10) ist die eingebaute methode zu dumm. andererseits macht dan log von vornherein keinen sinn. deshalb hab ich mir nicht die mühe gemacht etwas besseres zu bauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig


kadettilac89

#4
Hi,

nach dem Update von gestern habe ich ein Problem festgestellt. Er wird durch einen unrealistischen WErt den ein Sensor geliefert hat verursacht. Dadurch lässt sich aber FHEM nicht mehr aufrufen. Es läuft, jedoch ist Web-Schnittstelle "Tod". Ich denke durch einen zu großen Wert kommt es zu einem Überlauf o. ä. Der Fehler im Log ist ohne Timestamp, er wird also von Perl direkt geworfen. Ein Fehler sollte, wenn möglich, aber Fhem nicht lahmlegen.


Zeile 1774   ......
    my $f_log = int($hmax{$a}) ? ((SVG_log10($hmax{$a})-SVG_log10($hmin{$a})) /
                        ($hmax{$a}-$hmin{$a})) : 1;


Fehler im Log


Illegal division by zero at ./FHEM/98_SVG.pm line 1774.


Werte in der Datenbank die den Überlauf oder Fehler verursachen


2019-06-22 16:04:12    HMTempSensor2   CUL_HM     brightness: 268435456.0    brightness      268435456.0


Normaler Wertebereich für brightness "0 - 40.000". Der Sensor hat am Nachmittag, warum auch immer, einen Satz sinnloser WErte geliefert. Es ist aktuell Gewitter, er hängt draußen, vielleicht Aufladung nach einen Blitz ...

Wäre nett wenn ihr mal drüber schaut und ggf. ein "... or die" oder so einbaut.

Danke!

Edit: der Plot ist beim mit im Default Raum, darum kam ich gar nicht mehr auf Fhem. Es funktioniert nur der Raum nicht, in dem der Plot ist.

KiK

@justme1968: Vielen Dank - auch für den "plotsize"-Tipp! Funktioniert bei mir super...

rudolfkoenig

@kadettilac89: Danke fuer die Meldung, habe eine Pruefung eingebaut, kannst du es bitte testen?

kadettilac89

Zitat von: rudolfkoenig am 23 Juni 2019, 09:18:26
@kadettilac89: Danke fuer die Meldung, habe eine Pruefung eingebaut, kannst du es bitte testen?
Hi Rudolf,

im Falle von Datenschrott ist der Plot leer, es kommt aber nicht mehr zum gemeldeten Problem.

Danke dir!

betateilchen

Der gleiche Fehler mit der ungültigen Division durch 0 scheint noch an anderer Stelle aufzutreten.

https://forum.fhem.de/index.php/topic,102543.0.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!