¿Qué algoritmos son buenos para dibujar gráficos interactivos / en tiempo real?
-
19-08-2019 - |
Pregunta
¿Qué algoritmos son buenos para dibujar gráficos interactivos / en tiempo real para datos en vivo y manipulación directa?
En su defecto, ¿qué bibliotecas utiliza para dibujar gráficos?
Sugerencias;
- Prefuse kit de herramientas de visualización de información
- cualquier otro?
Por cierto, me refiero a los gráficos en el sentido de la teoría de gráficos: puntos y líneas
- cualquier idioma
- por live quiero decir que el gráfico debe ser manipulable una vez en la pantalla.
Solución
Recomendaría cualquier biblioteca en la que Jeff Heer haya trabajado:
Creo que los tres proyectos son de código abierto. Jeff Heer es bastante bueno para hacer referencia a documentos en su código, al menos en la biblioteca Prefuse. Mirando la fuente Prefuse:
BalloonTreeLayout : El algoritmo utilizado es el de G. Melan & # 231; on y I. Herman de su trabajo de investigación Circular Drawings of Rooted Trees, Reports of the Center for Mathematics and Computer Sciences, Report Número INS & # 8211; 9817, 1998.
ForceDirectedLayout.java : No se menciona ninguna referencia, pero hay muchos comentarios que describen cómo funciona.
FruchtermanReingoldLayout.java : referencias Jung . En su sitio web encontré un papel que tiene referencias a varios algoritmos
NodeLinkTreeLayout.java : El algoritmo utilizado es el de Christoph Buchheim, Michael J & # 252; nger y Sebastian Leipert de su trabajo de investigación Mejorando el algoritmo de Walker para ejecutarse en tiempo lineal , Graph Drawing 2002. Este algoritmo corrige problemas de rendimiento en el algoritmo de Walker, que generaliza el método de Reingold y Tilford para dibujos ordenados de árboles para soportar árboles con un número arbitrario de hijos en cualquier nodo dado.
RadialTreeLayout.java : El algoritmo utilizado es el de Ka-Ping Yee, Danyel Fisher, Rachna Dhamija y Marti Hearst en su trabajo de investigación Exploración animada de gráficos dinámicos con diseño radial , InfoVis 2001. Este algoritmo calcula un diseño radial que tiene en cuenta una posible variación en los tamaños y mantiene ambas orientaciones y restricciones de pedido para facilitar transiciones suaves y comprensibles entre configuraciones de diseño.
SquarifiedTreeMapLayout : este algoritmo particular está tomado de Bruls, D.M., C. Huizing y J.J. van Wijk, '' Mapas de árboles en escuadra '' En Data Visualization 2000, Proceedings of the Joint Eurographics and IEEE TCVG Sumposium on Visualization , 2000, pp. 33-42. Disponible en línea en http://www.win.tue.nl/~vanwijk/stm .pdf . Para obtener más información sobre TreeMaps en general, consulte http://www.cs.umd.edu / hcil / treemap-history
Otros consejos
el kit de herramientas de visualización prefusa parece un buen candidato.
Prefuse admite un rico conjunto de características para el modelado de datos, visualización e interacción. Eso proporciona estructuras de datos optimizadas para tablas, gráficos y árboles, una gran cantidad de diseño y técnicas de codificación visual, y soporte para animación, dinámica consultas, búsqueda integrada y conectividad de bases de datos. Prefuse es escrito en Java, utilizando Java 2D biblioteca de gráficos, y es fácilmente integrado en Java Swing aplicaciones o applets web. Prefundir tiene licencia bajo los términos de un BSD licencia, y se puede usar libremente para tanto comercial como no comercial propósitos (desde la página de inicio)
El dibujo gráfico es un campo grande. Aquí hay un enlace a un sitio web de la comunidad de investigación de dibujo gráfico . Tienen una conferencia anual específicamente sobre dibujo gráfico. También puedo sugerir leer algunos de Prof. Publicaciones de David Harel : una de sus áreas de investigación es el dibujo de gráficos, por ejemplo este documento . Esto parece un problema difícil de resolver en el caso general. Tal vez pueda limitar su aplicación a un subconjunto restringido de gráficos (los gráficos planos probablemente sean demasiado restrictivos). Probablemente los gráficos simples con un pequeño conjunto de vértices permiten una manipulación más fácil.
Hay algunos documentos interesantes asociados con Graphviz . En particular:
Utilizo el lenguaje Dot para describir gráficos. Y, la salida del compilador Dot incluye SVG, que está en XML y puede integrarse en XHTML.
http://en.wikipedia.org/wiki/DOT_language
No estoy seguro de lo que buscas ...
¿suena como que tal vez está buscando hacer algo similar a rrdtool?
Tal vez hay alguna información en su sitio que ayudará:
Soy nuevo en stackflow, lo siento por la respuesta tardía. Dependiendo de qué tan interactivo desee ser ... es posible que no quiera ver Flot (usa JQuery, menos interactivo) o procesamiento ... más interactivo.