En tiempo real Java graph / chart library? [cerrado]


Hubo un subproceso anterior en Java graph o chart library, donde se encontró que JFreeChart era bastante bueno, pero, como declaró en su FAQ, no está destinado para el renderizado en tiempo real.

¿Puede alguien recomendar una biblioteca comparable que admita el renderizado en tiempo real? Solo un renderizado xy básico, por ejemplo, obtener una señal de voltaje del sistema de adquisición de datos y trazarla como viene (tiempo en el eje x, voltaje en el eje y).

Author: Community, 2009-02-17

12 answers

Lo que el FAQ realmente dice es que JFreeChart no admite gráficos duros en tiempo real, lo que significa que el gráfico no se actualiza cuando llegan nuevos datos o en un intervalo determinista después de él. Sin embargo, he encontrado que JFreeChart se puede utilizar para el tipo de aplicaciones que está describiendo. Puede lograr 1 actualización por segundo, lo cual está bien. No creo que un ojo humano pueda seguir algo más rápido que esto.

Si quieres algo más que esto, dudo que encuentres algo en Java (o incluso en otro idioma). Los sistemas operativos que utilizamos no están diseñados para ser en tiempo real. No puede tener una garantía de que responderán en un intervalo mínimo después de un evento. Se necesitará una estrecha integración con el controlador de hardware para mostrar más de 1-10 fotogramas por segundo.

Sin embargo, si diseña su aplicación correctamente, el sistema operativo responderá rápidamente y su aplicación puede mostrar fácilmente un gráfico "en tiempo real" (es decir, un gráfico que se actualiza una vez por segundo). Simplemente no uses su aplicación para cerrar una válvula en una situación de emergencia!

 9
Author: kgiannakakis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 08:10:01
 7
Author: Jacek Ławrynowicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 08:30:05

Acaba de encontrar una descripción sobre cómo usar la biblioteca de gráficos visualvm. Se ve muy bien!

 6
Author: weberste,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-23 19:23:51

Echa un vistazo a processing 's es un entorno de código abierto basado en Java diseñado para todo tipo de visualizaciones animadas.

 5
Author: Rahel Lüthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 07:55:12

Bueno, si tiene que ser Java, entonces es posible que desee mirar en estos.

 5
Author: Adeel Ansari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 08:51:35

Probablemente ya haya encontrado una buena solución, pero si no, recientemente he trabajado en un marco para producir gráficos 2D que permitan actualizaciones en vivo a una velocidad de más de 50 cambios por segundo.

La intención original era imitar la apariencia de un registrador de gráficos en una región de desplazamiento de una página web, pero creo que el enfoque tiene una aplicación más amplia.

Se puede encontrar una demostración en Chart Recorder Demo si alguien está interesado.

, La apariencia es definido por una plantilla (www.journeylog.co.uk/chart/templates/chartRecorder.xml). Una característica es la capacidad de especificar el dibujo en el servidor o en el navegador utilizando ExplorerCanvas.

Si alguien está interesado podría iniciar un proyecto de código abierto para ello.

 5
Author: Alasdair Scott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-08 23:56:02

Lo suficientemente rápido para tiempo real es swtchart, al menos en mi experiencia. Incluso con lotes de datos. No se asuste por el número de versión, sí es una API bastante nueva, pero la uso con éxito sin problemas.

Como su nombre lo indica, se basa en SWT, que utiliza dibujo de SO nativo. También hace algunas optimizaciones inteligentes para dibujar rápido, como no dibujar todos los puntos en el conjunto de datos (ver Fragmento de ejemplo de Serie grande).

 4
Author: the.duckman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 20:27:57
 2
Author: jobobo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-19 03:28:19

JCCkit es vary buena biblioteca que se dirigen a menos memoria, especialmente en el entorno embebido: https://sourceforge.net/projects/jcckit .

Toma menos de

 2
Author: CJ_world,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-16 08:42:06

Podría indagar en la fuente de NetBeans. El generador de perfiles hace gráficos en tiempo real de varias cosas, como el uso de memoria.

 1
Author: TofuBeer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-17 08:19:21

SWT XYGraph puede trazar datos con su propio proveedor de datos, por lo que puede crear un proveedor de datos en tiempo real que proporcione datos en vivo. Con SWTChart y JFreeChart, tienes que preparar toda la matriz para ello.

 1
Author: xihui,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-07 19:46:15

Esta pregunta ha sido respondida bien en: Java Real time graph plotting

Como VisualVM incluye una API de gráficos, y esta API está incluida en el JDK, tiene una API de gráficos buena/rápida disponible.

 0
Author: java4africa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:49