Bibliothèque de graphiques / graphiques Java en temps réel? [fermé]
il y avait un fil plus tôt sur Java graph ou chart library , où JFreeChart a été trouvé pour être tout à fait bon, mais , comme déclaré dans sa FAQ , il n'est pas destiné à rendre en temps réel.
est-ce que quelqu'un peut recommander une bibliothèque comparable qui supporte le rendu en temps réel? Juste quelques XY-rendu de base - par exemple, l'obtention d'un signal de tension du système d'acquisition de données et de tracer comme il vient (temps sur l'axe des abscisses, tension sur l'axe des ordonnées).
12 réponses
ce que la FAQ dit en fait est que JFreeChart ne supporte pas les charts durs en temps réel, ce qui signifie que le chart n'est pas mis à jour lorsque de nouvelles données arrivent ou à l'intervalle déterministe après lui. Toutefois, j'ai constaté que JFreeChart peut être utilisé pour le type d'applications que vous décrivez. Vous pouvez réaliser 1 Mise à jour par seconde, ce qui est très bien. Je ne pense pas qu'un oeil humain puisse suivre quelque chose plus vite que ça.
si tu veux quelque chose de plus que ça, je doute que tu le veuilles trouver quelque chose en Java (ou même dans une autre langue). Les Systèmes d'exploitation que nous utilisons ne sont pas conçus pour être en temps réel. Vous ne pouvez pas avoir une garantie qu'ils répondront dans un délai minimum après un événement. Une intégration étroite avec le pilote matériel sera nécessaire pour afficher plus de 1 à 10 images par seconde.
cependant, si vous concevez votre application correctement, le système d'exploitation répondra rapidement et votre application peut facilement afficher un graphique "en temps réel" (ce qui signifie un graphique qui les mises à jour une fois par seconde). N'utilisez pas votre application pour fermer une valve en cas d'urgence!
Juste tombé sur une description sur la façon d'utiliser le visualvm cartographie de la bibliothèque . A l'air très sympa!
regardez processing -- c'est un environnement open-source basé sur java et conçu pour toutes sortes de visualisations animées.
Eh bien, si cela doit être Java, alors vous pourriez vouloir regarder dans ceux-ci.
- Java Real-Time Systems (inclut les démos en temps réel et non-temps réel, et la version JavaFX de l'application de cartographie)
- en temps Réel le développement d'applications Java à l'aide de systèmes multicœurs
- Accéléré en Temps Réel de Tâches Graphiques (Cette technologie fonctionne sur Linux, mais le développement peut être fait sur n'importe quelle plate-forme qui supporte Java 5.0 et Eclipse.)
- JavaFX - Un Graphique À Secteurs Démo
vous avez probablement déjà trouvé une bonne solution, mais si ce n'est pas le cas, j'ai récemment travaillé sur un cadre pour produire des cartes 2D permettant des mises à jour en direct à un taux de plus de 50 changements par seconde.
L'intention initiale était d'imiter l'apparence d'un enregistreur graphique dans une zone de défilement d'une page web, mais je crois que l'approche a une application plus large.
une démo peut être trouvée à Démo D'Enregistreur graphique si quelqu'un est intéressé.
l'apparence est définie par un gabarit (www.journeylog.co.uk/chart/templates/chartRecorder.xml). Une caractéristique est la possibilité de spécifier le dessin soit sur le serveur ou dans le navigateur en utilisant ExplorerCanvas.
Si quelqu'un est intéressé, je pourrais commencer un projet open source.
assez rapide pour le temps réel est swtchart , au moins dans mon expérience. Même avec lots de données. Ne soyez pas effrayés par le numéro de version, Oui c'est une API assez nouvelle, mais je l'utilise avec succès sans problème.
comme son nom l'indique, il est basé sur SWT , qui utilise le dessin OS natif. Il fait aussi quelques optimisations intelligentes pour le dessin rapide, comme ne pas dessiner tous les points dans l'ensemble de données (voir la Grande Série Fragment Exemple).
jcckit is vary bonne bibliothèque qui ciblent moins de mémoire en particulier dans l'environnement intégré : https://sourceforge.net/projects/jcckit .
prend moins de 100 kb .
vous pourriez creuser autour de la source pour NetBeans. Le profileur n'temps réel graphique de diverses choses telles que l'utilisation de la mémoire.
SWT XYGraph peut tracer des données avec votre propre fournisseur de données, de sorte que vous pouvez créer un fournisseur de données en temps réel fournissant des données en direct. Avec SWTChart et JFreeChart, vous devez préparer tout le réseau pour cela.
cette question a été bien répondu dans: Java temps-Réel de représentations graphiques
comme VisualVM inclut une API de Charting, et cette API est inclus dans le JDK, vous avez une bonne/rapide API de charting disponible.