Il y avait un fil précédent sur bibliothèque de graphiques ou de graphiques Java , où JFreeChart s’est avéré très bon, mais , comme indiqué dans sa FAQ , c’est non destiné à un rendu en temps réel.
Quelqu'un peut-il recommander une bibliothèque comparable prenant en charge le rendu en temps réel? Juste un rendu xy de base - par exemple, obtenir un signal de tension à partir du système d’acquisition de données et le tracer au fur et à mesure (temps sur l’axe des x, tension sur l’axe des y).
La FAQ indique en réalité que JFreeChart ne prend pas en charge les graphiques en temps réel, ce qui signifie que le graphique n'est pas mis à jour lorsque de nouvelles données arrivent ou à un intervalle déterministe qui les suit. Cependant, 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 bien. Je ne pense pas qu'un œil humain puisse suivre quelque chose de plus rapide que cela.
Si vous voulez quelque chose de plus que cela, je doute que vous trouviez quelque chose en Java (ou même dans un autre langage). Les systèmes d'exploitation que nous utilisons ne sont pas conçus pour être en temps réel. Vous ne pouvez pas avoir la garantie qu'ils répondront dans un intervalle 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.
Toutefois, si vous concevez votre application correctement, le système d'exploitation répondra rapidement et votre application pourra facilement afficher un graphique "en temps réel" (c'est-à-dire un graphique mis à jour une fois par seconde). N'utilisez tout simplement pas votre application pour arrêter une vanne en cas d'urgence!
Je suis juste tombé sur une description de la façon d'utiliser la bibliothèque de graphiques visualvm . Semble très gentil!
jetez un oeil à processing - c'est un environnement Java open-source conçu pour toutes sortes de visualisations animées.
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 la production de graphiques 2D permettant des mises à jour en direct à un rythme de plus de 50 modifications 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 pense que l'approche a une application plus large.
Une démo est disponible sur Chart Recorder Demo si quelqu'un est intéressé.
L'apparence est définie par un modèle (www.journeylog.co.uk/chart/templates/chartRecorder.xml). L'une des fonctionnalités est la possibilité de spécifier un dessin sur le serveur ou dans le navigateur à l'aide de ExplorerCanvas.
Si quelqu'un est intéressé, je pourrais démarrer un projet open source pour cela.
Eh bien, si ce doit être Java, alors vous voudrez peut-être examiner ces.
Assez vite pour le temps réel est swtchart , du moins selon mon expérience. Même avec beaucoup de données. Ne soyez pas effrayés par le numéro de version, oui, c'est une API plutôt nouvelle, mais je l'utilise avec succès sans problèmes.
Comme son nom l'indique, il est basé sur SWT , qui utilise le dessin natif du système d'exploitation. En outre, il effectue des optimisations astucieuses pour dessiner rapidement, comme ne pas dessiner tous les points du jeu de données (voir Snippet Example Large Series).
JCCkit est une bonne bibliothèque qui cible moins de mémoire, particulièrement dans les environnements intégrés: https://sourceforge.net/projects/jcckit .
Prend moins de <100 kb.
Vous pouvez explorer les sources de NetBeans. Le profileur effectue la représentation graphique en temps réel de divers éléments, tels que l'utilisation de la mémoire.
SWT XYGraph peut tracer des données avec votre propre fournisseur de données, vous permettant ainsi de créer un fournisseur de données en temps réel fournissant des données en temps réel. Avec SWTChart et JFreeChart, vous devez préparer l’ensemble du tableau.
[Cette question a été bien posée dans: Java traçage graphique en temps réel
Comme VisualVM inclut une API de création de graphiques et que cette API est incluse dans le JDK, vous disposez d'une API de création de graphiques rapide/efficace.