JQuery FLOT-Diagramm dynamische Y-Achse

8

Ich habe ein Flottendiagramm, das den maximalen Y-Achsenwert basierend auf den letzten 100 Datenpunkten berechnet und dann erfolgreich plottet ... ABER Manchmal übersteigt die laufende Summe eines laufenden Diagramms (5 Sekunden Verzögerung mit neuem Datenpunkt) das aktuelle maximale Limit. Gibt es eine Möglichkeit, die Y-Achse dynamisch skalieren zu lassen, während neue Punkte auf dem Diagramm gezeichnet werden?

Dies ist eine gültige Frage darüber, wie die Y-Achse des Diagramms dynamisch skaliert werden soll, wenn die aktuelle Y-Achse überschritten wird. Da das Diagramm im Zeitverlauf gezeichnet wird und alle 5 Sekunden neue Punkte hinzugefügt werden, habe ich gefragt, wie skaliert werden soll Die Y-Achse passt die NEW-Plot-Daten an, wenn sie über den aktuellen Wert der Max Y-Achse hinausgeht.

UPDATE:

Hier ist der Code, den ich verwende (Json gab Daten zurück) sowie der Plot-Update-Timer: Das "highY" nimmt die letzten 100 Datenpunkte aus einer Datenbank und setzt den maximalen Wert auf die höchste Anzahl + 10%

%Vor%

Was ich erreichen möchte, ist, den "$ highY" (Y-Achsen) -Wert in Echtzeit anzupassen, wenn ich neue Datenpunkte plotte, so dass das Diagramm skaliert, wenn der Wert des neuen Datenplotpunkts den aktuellen übersteigt. yaxis {max: #} "in den Diagrammoptionen einstellen.

    
Silvertiger 23.10.2012, 04:21
quelle

1 Antwort

8

Ich nehme an, dass Sie gerade flot.setData und flot.draw verwenden?

Die einfachste Lösung besteht darin, bei jedem Empfang $.plot mit den neuen Daten aufzurufen. Zu verschiedenen Zeiten wurde dies von den Autoren des Flot-Plugins als eine einigermaßen effiziente Art, mit dieser Situation umzugehen, empfohlen. Ich habe das in Graphen verwendet, die jede Sekunde aktualisieren und feststellen, dass es keine übermäßige Menge an CPU auf dem Computer des Benutzers verwendet, selbst wenn 3-4 Graphen jede Sekunde auf einer Seite aktualisiert werden.

BEARBEITEN Basierend auf dem von Ihnen hinzugefügten Code (und Ihrer vorgeschlagenen Änderung) würde ich die Aktualisierungsfunktion folgendermaßen ändern:

%Vor%

Außerdem würden Sie Code zu getStr und getStr hinzufügen, die die Variable maxYaxis auf dem neuesten Stand halten.

    
Ryley 23.10.2012, 15:16
quelle

Tags und Links