2008-08-09 7 views
39

En un proyecto reciente de Java, necesitábamos una utilidad gratuita de trazado de datos en tiempo real basada en Java. Después de mucha búsqueda, encontramos esta herramienta llamada Scientific Graphics Toolkit or SGT de NOAA. Parecía bastante robusto, pero descubrimos que no era terriblemente configurable. O al menos no lo suficientemente configurable para satisfacer nuestras necesidades. Terminamos cavando muy profundamente en el código Java e ingeniería inversa del código y cambiándolo todo para que la herramienta de trazado se vea y actúe de la manera que queremos que se vea y actúe. Por supuesto, esto mató cualquier posibilidad de futuras actualizaciones de NOAA.¿Hay alguna librerías de gráficos de datos gratuitas de Java disponibles?

¿Qué herramientas gratuitas o baratas de compilación de datos basadas en Java o bibliotecas usa?

Seguimiento: Gracias por las sugerencias JFreeChart. Revisé su sitio web y parece una muy buena utilidad de gráficos y trazado de datos. Debería haber dejado en claro en mi pregunta original que estaba buscando específicamente trazar datos en tiempo real. Corregí mi pregunta anterior para aclarar ese punto. Parece que JFreeChart support for live data is marginal at best, though. ¿Alguna otra sugerencia por ahí?

+0

estoy exactamente en el mismo barco .. SGT ha intentado ya varias veces, lo encontraron adecuado pero no lo suficientemente configurable .., también excavado. Y también lo necesita en tiempo real. Como tu pregunta es de hace años, ¿has encontrado algo desde entonces? – user978548

Respuesta

17

He tenido éxito usando JFreeChart en proyectos múltiples. Es muy configurable. JFreeChart es de código abierto, pero cobran por el developer guide. Si está haciendo algo simple, el código de muestra probablemente sea lo suficientemente bueno. De lo contrario, $ 50 para la guía del desarrollador es una buena ganga.

Con respecto a los datos "en tiempo real", también he usado JFreeChart para este tipo de aplicaciones. Desafortunadamente, tuve que crear algunos modelos de datos personalizados con mecanismos de sincronización apropiados para evitar las condiciones de carrera. Sin embargo, no fue terriblemente difícil y JFreeChart aún sería mi primera opción. Sin embargo, como sugiere la pregunta frecuente, es posible que JFreeChart no le proporcione el mejor rendimiento si es una gran preocupación.

+0

JFreeChart es lo suficientemente bueno para la visualización de datos en tiempo real si el intervalo de actualización de su gráfico es de 1 segundo o más. –

0

He usado JFreeChart (http://www.jfree.org/jfreechart/) en un proyecto anterior. Tiene algunas capacidades incorporadas muy buenas, y el diseño era WAY extensible para que siempre pudieras rodar tu propia extensión más adelante si necesitabas alguna anotación de gráfico personalizada o si querías que un eje se procesara de manera diferente, o lo que fuera. Definitivamente vale la pena echarle un vistazo.

0

He usado JFreeChart en una aplicación bastante compleja que necesitaba visualizar secuencias de datos y cálculos basados ​​en los datos. Implementamos la capacidad de editar visualmente los gráficos de datos con el mouse y teníamos un gran conjunto de puntos de datos. JFreeChart lo manejó muy bien.

Lamentablemente, me quedé con la versión0.7, pero la versión más reciente es muchísimo mejor en lo que respecta a la claridad API. La comunidad es muy útil y los desarrolladores también responden a los correos electrónicos.

Si está haciendo una aplicación web y no quiere molestarse con las bibliotecas, puede consultar el Google Chart API. No lo usé yo mismo, pero comencé algunas pruebas que fueron muy prometedoras.

0

Compruebe ILOG JViews - tienen un montón de cosas y algo podría satisfacer sus necesidades. Todos ellos son extremadamente configurables y bastante rápidos. No es gratis sin embargo.

0

Para trazar en tiempo real puede usar QN Plot, JOpenChart o su horquilla Openchart2.

0

JHandles es un paquete de gráficos alternativo para Octave (un paquete matemático). Probablemente valga la pena investigarlo, pero ser específico de Octave puede no tener lo que necesita.

-Adam

3

Acabo de encontrar con un problema similar (que muestra datos de actualización rápida para fines de ingeniería), y estoy usando JChart2D. Es bastante minimalista y tiene algunos caprichos, pero parece bastante rápido: estoy ejecutando una prueba de velocidad de referencia donde está agregando 2331 puntos por segundo (rastros de 333x7) a un gráfico de tira y usa el 1% de la CPU en mi Pentium 4 de 3GHz.

+0

Este me parece muy prometedor. Sin embargo, no tengo tiempo para realmente probarlo. –

-1

Es posible que desee echa un vistazo a JMathPlot

+0

Explicar en detalle –

1

Plot4j apoya también en tiempo real el trazado!

2

Estoy usando GRAL para el trazado en tiempo real. Es una biblioteca LGPL de Java. Aunque no es tan poderoso como JFreeChart, tiene una API más agradable. Tengo una trama funcionando en muy poco tiempo. También envían un ejemplo de trazado en tiempo real.

0

PtPlot puede ser una buena opción. Anteriormente llamado Ptolomeo.

1

Encontré esta pregunta cuando busqué en Google bibliotecas de creación de código abierto para Java. No estaba del todo contento con las respuestas publicadas aquí, así que investigué un poco más sobre el tema. Aunque esta pregunta se publicó en 2008, podría ser interesante para alguien.

Aquí es una lista de Open Source Charting & Reporting Tools in Java

1

http://autoplot.org/ permite actualizaciones en tiempo real y se puede utilizar para crear muchos tipos de gráficos científicos.

Para actualizar el trazado, especifique la URL en un archivo de datos y luego añada &filePollUpdates=1&tail=100. Vea el ejemplo en http://autoplot.org/cookbook#Loading_Data

0

jcckit puede manejar el trazado en tiempo real. Aunque es un oso para usar.

Lo bifurqué e hice una envoltura muy simple alrededor para el trazado no en tiempo real. La interfaz complicada subyacente se puede usar directamente también.

https://bitbucket.org/hughperkins/easyjcckit

1

Waterloo Gráficos científica es un nuevo proyecto LGPL. Los objetos de datos son observables y podrían actualizarse en un escenario de trazado en tiempo real. Para más detalles ver http://waterloo.sourceforge.net/

algunas capturas de pantalla:

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

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

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

Cuestiones relacionadas