2008-08-09 13 views
39

Bei einem aktuellen Java-Projekt benötigten wir ein kostenloses Java-basiertes Echtzeit-Datenplotting-Dienstprogramm. Nach langem Suchen fanden wir dieses Tool namens Scientific Graphics Toolkit or SGT von NOAA. Es schien ziemlich robust, aber wir fanden heraus, dass es nicht schrecklich konfigurierbar war. Oder zumindest nicht konfigurierbar genug, um unsere Bedürfnisse zu erfüllen. Am Ende haben wir uns intensiv mit dem Java-Code beschäftigt und den Code reverse-engineering gemacht, um das Plot-Tool so zu gestalten, dass es so aussieht und funktioniert, wie wir es haben wollten. Natürlich hat dies jede Chance für zukünftige Upgrades von NOAA zunichte gemacht.Gibt es irgendwelche anständigen freien Java-Daten Plotten Bibliotheken da draußen?

Also, welche kostenlose oder billige Java-basierte Plotwerkzeuge oder Bibliotheken verwenden Sie?

Follow-up: Danke für die JFreeChart Vorschläge. Ich habe ihre Website ausgecheckt und es sieht aus wie ein sehr nützliches Dienstprogramm zum Chartieren und Plotten von Daten. Ich hätte in meiner ursprünglichen Frage klarstellen sollen, dass ich gezielt nach Echtzeitdaten suchte. Ich habe meine Frage korrigiert, um diesen Punkt klarzustellen. Es scheint, dass JFreeChart support for live data is marginal at best, though. Irgendwelche anderen Vorschläge da draußen?

+0

ich in der genau gleichen Boot bin .. Versucht SGT da einige Male, es ist gut gefunden aber nicht genug konfigurierbar .., auch gegraben. Und es auch in Echtzeit brauchen. Da deine Frage von vor Jahren stammt, hast du bisher etwas gefunden? – user978548

Antwort

17

Ich hatte Erfolg mit JFreeChart für mehrere Projekte. Es ist sehr konfigurierbar. JFreeChart ist Open Source, aber sie berechnen für die developer guide. Wenn Sie etwas Einfaches tun, ist der Beispielcode wahrscheinlich gut genug. Ansonsten sind $ 50 für den Entwickler Guide ein ziemlich gutes Schnäppchen.

In Bezug auf "Echtzeit" -Daten habe ich auch JFreeChart für diese Art von Anwendungen verwendet. Leider musste ich einige benutzerdefinierte Datenmodelle mit geeigneten Synchronisationsmechanismen erstellen, um Rennbedingungen zu vermeiden. Es war jedoch nicht besonders schwierig und JFreeChart wäre immer noch meine erste Wahl. Wie die FAQs jedoch empfehlen, bietet JFreeChart möglicherweise nicht die beste Leistung, wenn dies ein großes Problem darstellt.

+0

JFreeChart ist für die Anzeige von Echtzeitdaten ausreichend, wenn das Aktualisierungsintervall für Diagramme 1 Sekunde oder länger beträgt. –

0

Ich habe JFreeChart (http://www.jfree.org/jfreechart/) bei einem früheren Projekt verwendet. Es verfügt über einige sehr gute integrierte Funktionen und das Design war WAY-erweiterbar, so dass Sie später immer Ihre eigene Erweiterung rollen können, wenn Sie eine benutzerdefinierte Diagrammannotation benötigen oder eine Achse anders rendern möchten oder was auch immer. Es ist definitiv einen Besuch wert.

0

Ich habe JFreeChart in einer ziemlich komplexen Anwendung verwendet, die Datenströme und Berechnungen basierend auf den Daten visualisieren musste. Wir haben die Fähigkeit implementiert, die Datenzeichnungen mit der Maus visuell zu bearbeiten und hatten einen sehr großen Satz von Datenpunkten. JFreeChart hat das sehr gut gehandhabt.

Leider war ich mit v0.7 fest, aber die neueste Version ist sooo viel besser, wenn es um API Klarheit geht. Die Community ist sehr hilfreich und die Entwickler reagieren auch auf Mails.

Wenn Sie eine Webanwendung erstellen und sich nicht mit Bibliotheken beschäftigen möchten, können Sie die Google Chart API überprüfen. Ich habe es nicht selbst benutzt, aber ich habe ein paar Tests gestartet, die sehr vielversprechend waren.

0

Überprüfen Sie ILOG JViews - sie haben eine Menge Zeug und etwas könnte Ihren Bedürfnissen entsprechen. Alle von ihnen sind extrem konfigurierbar und ziemlich schnell. Nicht frei aber.

0

Für Echtzeit-Plotten können Sie QN Plot, JOpenChart oder seine Gabel Openchart2 verwenden.

0

JHandles ist ein alternatives Grafikpaket für Octave (ein Mathe-Paket). Es lohnt sich, etwas genauer zu betrachten, aber Octave-spezifisch zu sein, hat vielleicht nicht das, was Sie brauchen.

-Adam

3

Ich stieß gerade auf ein ähnliches Problem (Anzeige von schnell aktualisierenden Daten für technische Zwecke), und ich verwende JChart2D. Es ist ziemlich minimalistisch und hat ein paar Macken, aber es scheint ziemlich schnell: Ich führe einen Benchmark-Geschwindigkeitstest, wo es 2331 Punkte pro Sekunde (333x7 Spuren) zu einer Strip-Chart und verwendet 1% der CPU auf meinem 3GHz Pentium 4. Plotten

+0

Dieser sieht sehr vielversprechend für mich aus. Habe aber keine Zeit, es tatsächlich auszuprobieren. –

-1

vielleicht möchten JMathPlot heraus überprüfen

+0

Erklären Sie im Detail –

1

Plot4j unterstützt auch Echtzeit!

2

Ich verwende GRAL für Echtzeit-Plotten. Es ist eine LGPL Java Bibliothek. Obwohl es nicht so leistungsfähig wie JFreeChart ist, hat es eine schönere API. Ich habe in kürzester Zeit ein Grundstück aufgebaut. Sie liefern auch ein Echtzeit-Plot-Beispiel.

0

PtPlot kann eine gute Wahl sein. Ehemals Ptolemäus genannt.

1

Ich habe diese Frage gefunden, als ich für Open-Source-Plotting-Bibliotheken für Java googelte. Ich war nicht ganz glücklich mit den Antworten, die hier gepostet wurden, also habe ich etwas zu diesem Thema geforscht. Obwohl diese Frage im Jahr 2008 veröffentlicht wurde, könnte dies für jemanden immer noch interessant sein. Hier

ist eine Liste von Open Source Charting & Reporting Tools in Java

1

http://autoplot.org/ ermöglicht Echtzeit-Updates und können verwendet werden viele Arten von wissenschaftlichen Grundstücke zu schaffen.

Um das Diagramm zu aktualisieren, geben Sie die URL zu einer Datendatei an und fügen Sie dann &filePollUpdates=1&tail=100 an. Siehe das Beispiel unter http://autoplot.org/cookbook#Loading_Data

0

jcckit kann Echtzeit-Plotten bewältigen. Es ist ein Bär zu benutzen.

Ich verzweigte es, und machte eine sehr einfache Wrapper um es für Non-Realtime-Plotten. Die zugrundeliegende komplizierte Schnittstelle kann auch direkt verwendet werden.

https://bitbucket.org/hughperkins/easyjcckit

1

Waterloo Scientific Graphics ist ein neues Projekt LGPL. Datenobjekte sind beobachtbar und könnten in einem Echtzeit-Plot-Szenario aktualisiert werden. Details siehe http://waterloo.sourceforge.net/

ein paar Screenshots:

http://waterloo.sourceforge.net/images/AnatomyZ.png

http://waterloo.sourceforge.net/images/contour.png

http://waterloo.sourceforge.net/images/errorbar.png