Ankündigung

Einklappen
Keine Ankündigung bisher.

plot.period Zoom advanced

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

    plot.period Zoom advanced

    Hallo,

    leider habe ich keine Info darüber gefunden, daher wollte ich jetzt mal fragen.

    Ich habe mir einen plot.period erstellt und den zoom auf advanced. Jetzt kann man über die Buttons entsprechende Zeitbereiche aus wählen wie z.B. 3Std,1T usw. Beim Laden der Webseite wird aktuell aber immer "All" ausgewählt. Wie kann ich hier z.B. "1T" als Standard verwenden?

    Gruß
    Michael

    #2
    Hallo Michael,

    das geht nicht direkt über die Widget Parameter. Man kann aber mit dem Parameter "chartoptions" zusätzliche Optionen direkt an Highcharts übergeben.
    Auf der Dokuseite (die ich heute Abend an der Stelle noch ergänzen werde) wird zum Beispiel für die Veränderung der Skala der y-Achse und die Verlegung der Legende folgender Aufruf verwendet:
    Code:
    {{ plot.period('', ['bath_plot_value','bath_plot_switch'], 'max', '1d', '', [20,'Off'], [24,'On'], '', ['Temperature','Heating'], '', ['line','stair'], '', '', [1,2], [0,1], '', ['linear', 'boolean'], '°', [MARKIEREN]{ yAxis: [ { tickInterval: 0.5 } ], legend: { verticalAlign: 'bottom', y: -30 } }[/MARKIEREN]) }}
    Gelb markiert sind die Highcharts-Optionen. Welche Option den default zoom level bezeichnet, müsstest Du Dir bitte in der exzellenten Highcharts-Dokumentation selbst heraus suchen.

    Gruß in die Nachbachschaft
    Wolfram

    Kommentar


      #3
      Hallo Wolfram,

      danke für Deine schnelle Antwort. Dann warte ich mal auf Deine Dokuseite.

      Hier noch ein Screenshot. Den rot markierten Button meinte ich. Wenn Du mir hierzu den entsprechenden Eintrag schicken könntest, wäre das echt super.

      Gruß
      Michael

      2021-01-19 13_08_59-Unser Zuhause.png

      Kommentar


        #4
        Da hast Du mich falsch verstanden. Auf der Dokuseite will ich nur den Code anzeigen, den ich in den vorigen Post hineinkopiert habe. In der Doku wird nämlich nur der Plot angezeigt, aber nicht der zugehörige Code.
        Das Beispiel zeigt, wie eine Lösung prinzipiell aussehen kann. Da ich aktuell stark mit dem kommenden Release ausgelastet bin, bitte ich Dich, die chartoptions aus der highcharts-Doku selbst heraus zu suchen.

        Gruß
        Wolfram

        Kommentar


          #5
          Dein Hinweis hat mich weitergebracht, aber leicht ist was anderes!

          Für jeden der das gleiche Problem hat. Folgendes hat mir weitergeholfen

          Code:
          { rangeSelector: {selected: '3'}}
          Die 3 war bei mir den Button "1T"

          0 = 3 Std
          1 = 6 Std.

          usw....
          Zuletzt geändert von mwinkler; 19.01.2021, 15:43.

          Kommentar


            #6
            Cool. Danke.
            Ich nehme das gerne auch gleich in die Doku auf.

            Gruß
            Wolfram

            Kommentar


              #7
              Hallo,
              seit dem Update auf Version 3.3.0
              scheint mein selected Aufruf keine Auswirkung mehr auf die Range zu haben:
              Code:
              {{ plot.period('', 'aussen.wetter.wetterstation.temperatur', 'avg', '14d', 'now', '', '', 36500, '', '', '', ['Temperatur in °C', ''], 'advanced', '', '', '', '', '', { rangeSelector: {selected: '3'}}) }}
              Das manuelle verstellen geht weiterhin, jemand eine Idee?

              Kommentar


                #8
                Das ist leider dem Bugfixing zum Opfer gefallen. Weil Highcharts in bestimmten Situationen beim Laden neuer Daten die eingestellte Skalierung der x-Achse überschreibt, musste ich die x-Achse als Workaround neu skalieren. Leider wird dabei auch der eingestellte Rangeselektor ignoriert. Ich adressiere das mal an Highsoft in der Hoffnung, dass man dort Abhilfe schafft.

                Bis dahin kannst Du mal folgenden Workaround testen: in der ./widgets/plot.js die Zeilen 557 bis 579 in folgende if-Anweisung setzen:
                Code:
                if (!chart.options.rangeSelector.selected || chart.options.rangeSelector.selected == ''){
                    //... Code Zeilen 557 bis 579 ...
                }
                Das Problem des rangeSelectors ist damit behoben, aber ich konnte noch nicht testen, ob dies anderweitige Nachteile erzeugt.

                Gruß
                Wolfram

                Kommentar


                  #9
                  danke, klappt wieder.
                  Grüße
                  Martin

                  Kommentar


                    #10
                    Hat auch bei mir geholfen. Vielen Dank!

                    Kommentar


                      #11
                      Bei mir klappt's auch.

                      Kann man das irgendwie hinbekommen, dass man mit einem Button die Range aller Charts auf einer Seite verstellt?

                      Kommentar


                        #12
                        Die Lösung hat verschiedene Nachteile und ist daher nur temporär anzuwenden. Ich warte noch auf die Antwort von Highsoft, ob das Verhalten, das mit dem workaround kaschiert wird, als Bug eingestuft und gefixt wird. Danach baue ich eine entsprechende Lösung ein.

                        Highcharts selbst sieht eine Synchronisierung von Grafiken nicht vor. Es gibt im Netz verschiedene Hinweise, wie dies erreicht werden kann. Man müsste in die Seite dazu eigene Buttons einbauen und mit click-Events für alle Grafiken die xAxis.setExtremes() Methode aufrufen, Beispiel: siehe hier.

                        Gruß
                        Wolfram

                        Kommentar


                          #13
                          KleskMS klotzek Jackhammer

                          im develop branch ist jetzt ein Fix, der die Nachteile des Workarounds behebt. Ich wäre Euch dankbar, wenn Ihr diesen einmal testen würdet. In smartVISU v3.3 reicht es aus, die Datei ./widgets/plot.js auszutauschen.

                          Wenn Ihr die bisherige Datei sichern wollt, macht dies außerhalb der smartVISU-Ordner oder benennt die Endung von ".js" in z.B. ".js-old" um. Anderenfalls wird die alte Datei weiterhin importiert und sorgt für Konflikte.

                          Gruß
                          Wolfram
                          Zuletzt geändert von wvhn; 12.01.2023, 10:27.

                          Kommentar


                            #14
                            Hallo Wolfram,

                            ich habe die develop plot.js ausprobiert: Mit Erfolg.

                            Viele Grüße,
                            Jürgen


                            EDIT: neuen Thread für zweites Problem eröffnet.
                            Zuletzt geändert von wvhn; 12.01.2023, 16:03.

                            Kommentar


                              #15
                              Funktioniert bei mir!

                              Kommentar

                              Lädt...
                              X