Ankündigung

Einklappen
Keine Ankündigung bisher.

2.9: plot.period - ymin ohne Wirkung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    2.9: plot.period - ymin ohne Wirkung

    Hi, eventuell liegts an mir, aber beim plot.period scheint die Angabe von ymin nicht zu wirken. Es wird trotz Angabe von 0 der abgerundete tiefste Wert der Plotdaten verwendet, in dem Fall 30.
    Mein plot:
    Code:
    {{ plot.period("", "Item", "avg", "1d", "", "0", "100", "", "Luftfeuchte", "", "", ["Zeit", "%"], "1h", "", "", "", "", "%d %") }}
    Und so sieht das aus:
    plot.png

    #2
    Schreibe mal statt "0" ein "0.0"

    Der Hund liegt in der widgets/plot.js begraben ab Zeile 118:

    Code:
    var ymin = [];
    if (this.options.ymin) {
    ymin = String(this.options.ymin).explode();
    }
    Je nachdem welchen Wert Du im Makro Aufruf hast ergibt sich für this.options.ymin der Wert "0.0" oder 0, also ein String oder halt 0.
    Daraufhin wird ymin entweder auf "0.0" gesetzt was dazu führt, das die Range korrekt angezeigt wird oder aber ymin wird null, was zur Folge hat, das nicht korrekt skaliert wird.

    Ich bin leider nicht tief genug drin, als das ich das fehlerfrei in plot.js fixen könnte, aber Onkelandy oder wvhn könnten das hinkriegen
    Zuletzt geändert von bmx; 29.03.2020, 10:44.

    Kommentar


      #3
      Bei einem anderen Plot mit Fließkommawerten hatte ich eben ein ähnliches Problem und kam dann durch Testen von verschiedenen Möglichkeiten der Notation auf die Lösung.
      Scheinbar müssen ymin und ymax in der gleichen Weise notiert werden. Wenn z. Bsp. ymax = "100" ist, dann muss ymin = "000" sein oder wenn ymax = "0.3" ist, dann muss ymin = "0.0" sein. Weiter müssen die Angaben als Text in Anführungszeichen angegeben werden.

      Kommentar


        #4
        Danke für den Hinweis. Ich bin gerade dran, das zu analysieren.
        Dass ymin und ymax immer gleich notiert sein müssen, bestätigt sich bei meinen Tests allerdings nicht. ymin ='0.0' funktioniert mit ymax='150' einwandfrei. Die '0' geht allerdings nicht. Das versuche ich noch zu fixen.

        Kommentar


          #5
          bmx hatte den richtigen Riecher! Folgende Änderungen in plot.js ab Zeile 118 beheben das Problem:
          Code:
          var ymin = [];
          if (this.options.ymin[U][B] != undefined[/B][/U]) {
          ymin = String(this.options.ymin).explode();
          }
          
          var ymax = [];
          if (this.options.ymax[B] [U]!= undefined[/U][/B]) {
          ymax = String(this.options.ymax).explode();
          }
          So committe ich den Fix. Kannst Du das einmal selbst ändern und testen?

          Kommentar


            #6
            Das kann sein, meine alternative Notation war immer die 0 bzw. "0" und da ymin="0.0" bei ymax="0.3" sofort funktioniert hat, habe ich bei ymax="100" nur ymin="000" getestet und da das gleich funktioniert hat, habe ich nicht weiter getestet.

            Kommentar

            Lädt...
            X