webentwicklung-frage-antwort-db.com.de

Java-Grafik-/Diagrammbibliothek in Echtzeit?

Es gab einen früheren Thread in Java-Grafik- oder Diagrammbibliothek , in dem JFreeChart als recht gut befunden wurde, aber , wie in seinem FAQ angegeben ist Nicht für Echtzeit-Rendering gedacht.

Kann jemand eine vergleichbare Bibliothek empfehlen, die Echtzeit-Rendering unterstützt? Nur ein paar grundlegende XY-Rendering-Funktionen - zum Beispiel das Abrufen eines Spannungssignals vom Datenerfassungssystem und das sofortige Auftragen des Signals (Zeit auf der X-Achse, Spannung auf der Y-Achse).

29
Joonas Pulakka

Die FAQ sagt eigentlich, dass JFreeChart keine harten Echtzeitdiagramme unterstützt, was bedeutet, dass das Diagramm nicht aktualisiert wird, wenn neue Daten eingehen oder in einem deterministischen Intervall danach. Ich habe jedoch festgestellt, dass JFreeChart für die Art von Anwendungen verwendet werden kann, die Sie beschreiben. Sie können 1 Update pro Sekunde erreichen, was in Ordnung ist. Ich glaube nicht, dass ein menschliches Auge etwas schneller folgen kann.

Wenn Sie etwas mehr wollen, bezweifle ich, dass Sie etwas in Java (oder sogar in einer anderen Sprache) finden werden. Betriebssysteme, die wir verwenden, sind nicht auf Echtzeit ausgelegt. Sie können nicht garantieren, dass sie nach einem Ereignis in einem Mindestintervall reagieren. Eine enge Integration mit dem Hardwaretreiber ist erforderlich, um mehr als 1-10 Bilder pro Sekunde anzuzeigen.

Wenn Sie Ihre Anwendung jedoch korrekt entwerfen, reagiert das Betriebssystem schnell und Ihre Anwendung kann problemlos eine Echtzeit-Grafik (dh eine Grafik, die einmal pro Sekunde aktualisiert wird) anzeigen. Verwenden Sie Ihre Anwendung nicht, um ein Ventil in einer Notfallsituation herunterzufahren!

9
kgiannakakis
7

Ich habe gerade eine Beschreibung über die Verwendung der visualvm-Diagrammbibliothek gefunden. Sieht sehr gut aus!

6
weberste

werfen Sie einen Blick auf processing - es handelt sich um eine Java-basierte Open-Source-Umgebung für alle Arten von animierten Visualisierungen.

5
Rahel Lüthy

Sie haben wahrscheinlich bereits eine gute Lösung gefunden, aber wenn nicht, habe ich kürzlich an einem Rahmen für die Erstellung von 2D-Diagrammen gearbeitet, der Live-Updates mit einer Geschwindigkeit von über 50 Änderungen pro Sekunde ermöglicht.

Die ursprüngliche Absicht bestand darin, das Erscheinungsbild eines Diagrammschreibers in einem Bildlaufbereich einer Webseite nachzuahmen, aber ich glaube, der Ansatz hat eine breitere Anwendung.

Eine Demo finden Sie unter Chart Recorder Demo bei Interesse.

Das Erscheinungsbild wird durch eine Vorlage definiert (www.journeylog.co.uk/chart/templates/chartRecorder.xml). Eine Funktion ist die Möglichkeit, Zeichnungen auf dem Server oder im Browser mithilfe von ExplorerCanvas anzugeben.

Wenn jemand interessiert ist, könnte ich ein Open Source-Projekt dafür starten.

5
Alasdair Scott

Nun, wenn es Java sein muss, dann sollten Sie sich diese genauer ansehen.

5
Adeel Ansari

Schnell genug für Echtzeit ist swtchart , zumindest in meiner Erfahrung. Sogar mit viele von Dateien. Lassen Sie sich nicht von der Versionsnummer abschrecken, ja, es ist eine ziemlich neue API, aber ich verwende sie erfolgreich ohne Probleme.

Wie der Name schon sagt, basiert es auf SWT , das die native OS-Zeichnung verwendet. Außerdem werden einige clevere Optimierungen für das schnelle Zeichnen durchgeführt, z. B. das Zeichnen nicht aller Punkte im Datensatz (siehe Beispiel-Snippet für große Serien).

4
the.duckman

JCCkit ist eine gute Bibliothek, die vor allem in eingebetteten Umgebungen weniger Arbeitsspeicher anstrebt: https://sourceforge.net/projects/jcckit .

Nimmt weniger als 100 kb auf.

2
CJ_world
2
jobobo

Sie könnten nach der Quelle für NetBeans suchen. Der Profiler führt Echtzeit-Grafiken für verschiedene Dinge aus, wie zum Beispiel die Speicherauslastung.

1
TofuBeer

SWT XYGraph kann Daten mit Ihrem eigenen Datenanbieter zeichnen, sodass Sie einen Echtzeitdatenanbieter erstellen können, der Live-Daten liefert. Mit SWTChart und JFreeChart müssen Sie das gesamte Array dafür vorbereiten.

1
xihui

Diese Frage wurde gut beantwortet in: Java Echtzeitdiagramm

Da VisualVM eine Diagramm-API enthält und diese API im JDK enthalten ist, steht Ihnen eine gute/schnelle Diagramm-API zur Verfügung.

0
java4africa