JfreEchart Echtzeit kombiniertes Diagramm - Rendern des vorherigen Wertes für einen Schritt -Subchart, wenn kein Datenpunkt empfangen wurde

StackOverflow https://stackoverflow.com/questions/1153836

  •  18-09-2019
  •  | 
  •  

Frage

Ich habe eine kombinierte Handlung in JFreechart, die aus 4 Timeseries -Diagrammen mit einer gemeinsamen Zeitdomänenachnen besteht.

Die Daten für die Nebenhandlungen kommen mit unterschiedlichen Raten ein. Zum Beispiel kann ich alle paar Miliskunden ein Preisänderungsereignis erhalten und eine Positionsänderung jede Minute ändert. Ich mache diese Serie derzeit mit dem XySTEPRenderer, um eine Stufendiagramme zu erstellen.

Ich möchte so etwas tun können:

  • Ein Preis ist zum Zeitpunkt t eingeht und in der Tabelle aufgetragen
  • Zum Zeitpunkt t wurden keine Daten für das Positionsdiagramm empfangen, und wir gehen daher davon aus, dass sich der Wert nicht geändert hat und der vorherige Positionswert wiedergegeben wird.
  • Zum Zeitpunkt t+1 wird ein Positionspunkt empfangen und geplant wird das Schrittdiagramm ändern
  • Zum Zeitpunkt t+1 wurde kein Preis erhalten, und so wird der vorherige Preis geplant

Gibt es eine einfache Möglichkeit, dies in Jfreechart zu tun? Derzeit habe ich eine funktionierende Implementierung, aber dies verwaltet nicht die Rendern der angenommenen Werte.

Meine anfänglichen Gedanken sind darin, das Datenmodell so zu ändern, dass ich schnell den vorherigen Wert finden und die Anrufe ändern kann, um jeder Nebenhandlung zu zeichnen, wenn ein Ereignis für jedes Diagramm empfangen wird.

War es hilfreich?

Lösung

Ich denke, Sie müssen die eingehenden Änderungen puffern und einen Regeln für die Weiterleitung von Änderungen an JFreechArt anwenden (was übrigens nicht wirklich für Echtzeitarbeit empfohlen wird, aber ich habe festgestellt, dass es für niedrige Frequenz-Updates gut funktioniert).

Ich vermute, Sie haben einen Datensatz für die Preise und einen Datensatz für die Positionen. Kommen Ihre Position und Ihre Preisaktualisierungen mit einem Zeitstempel? Wenn nicht, werden Sie das Problem haben, diese nacheinander zu empfangen und sie zu binden (möglicherweise Aktualisierungen, die innerhalb einer bestimmten Zeitwindow -Karte zum gleichen Zeitpunkt eintreffen?). Wenn sie Zeitstempel haben, können Sie eine neue Position (wie die alte Position) abgeben, wenn der Preis eingeht, und dann diese bei Bedarf ersetzen.

Ich würde die Aktualisierung der Diagramm -Aktualisierung aus den Position/Preis -Updates, was auch immer passiert, für den Fall, dass Sie mit Positions-/Preisänderungen überflutet werden. Sie möchten nicht, dass sich das in mehrere Diagramm -Updates übersetzt, die Sie sofort wegwerfen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top