Pregunta

Habiendo visto alguno sugerencias Para gráficos, me pregunto cuál es el óptimo para mi problema.

Quiero representar un gráfico dirigido a un servlet/imagen que se muestra en el navegador.Debería haber algún tipo de optimización de la posición.Se preferiría no depender de Swing.Los algoritmos no son importantes, ya que la estructura del gráfico está determinada por la lógica empresarial.También sería deseable poder agregar etiquetas a los bordes.Sería óptimo si pudiera servir esto como png/svg.

¿Qué biblioteca/servicio recomendarías?

aclaraciones:

1) La pregunta tiene que ver con gráficos, como Gráfico Acíclico Dirigido - NO - Gráficos.

2) flot, Google Charts: ¿no puedo trazar gráficos, solo gráficos, o me he perdido algo?

3) no, no necesito interactividad

4) Graphviz sería bueno, pero la biblioteca grappa java está bastante desactualizada y está construida sobre swing/awt.Si bien puede ser teóricamente posible representar swing en imágenes, no sería mi forma favorita de hacerlo en una aplicación de servidor.

5) estaría bien utilizar un servicio en línea donde las imágenes no estén alojadas localmente.

editar:Se agregaron enlaces a Wikipedia para aclarar el término gráfico/cuadro.

¿Fue útil?

Solución

Además de esperar semanas para escuchar sobre Magic Framework que resolverá todos tus problemas en una línea de código, también existe la otra opción de escribir algo de código tú mismo para hacer exactamente lo que quieres...(No digo que sean 10 minutos de trabajo, pero probablemente sean uno o dos días, y publicaste tu pregunta hace más de dos semanas...)

¿Has echado un vistazo, por ejemplo, a la entrada de Wikipedia sobre Algoritmos basados ​​en la fuerza-- tiene pseudocódigo y algunos enlaces que pueden resultar útiles.

Supongo que el problema es el algoritmo de diseño, y no la cuestión de crear una imagen en búfer, dibujarla en su contexto gráfico, codificarla en PNG y enviarla por el socket.Realmente no necesitas un marco para eso poco, no creo.

Otros consejos

Tome un vistazo a graphviz

yFiles podría ser útil para esto.

¿Qué tal el componente de punto de Graphviz? Produce gráficos (no gráficos), salidas a PNG y SVG, y es compatible con los bordes de etiquetado. Puede pagar a punto para generar la imagen que necesita, y devolver una etiqueta img que hace referencia a eso. Como alternativa, puede devolver una etiqueta img que hace referencia a una URL que va a generar el gráfico requerido (o recuperar una copia en caché). Aquí está la información de puntos:

http://www.graphviz.org/pdf/dotguide.pdf

También puede echar un vistazo a WebDot, que está aparentemente diseñado para este propósito:

http://www.graphviz.org/webdot/

Trate aiSee . Es utilizado por todo tipo de aplicaciones basadas en web para minería de datos, estática análisis de programas , visualización matriz , red de análisis , y otras cosas. También se utiliza por algunos MediaWiki como su graph- backend diseño.

Tienen una enorme base de datos de ejemplos de gráficos sobre en aiSee .com. Echale un vistazo. Es compatible con las etiquetas de borde, la exportación a SVG asignada y HTML, y no depende de la oscilación.

mxGraph para tales requisitos. Que de hecho liberamos en 2006, pero tomó un tiempo darse cuenta de esta pregunta ...

serverside , prueba a JUNG , se puede ejecutar contra Batik y producir bellas archivos SVG o PNG. JUNG tiene un diseño agradable y muy potente algoritmos de diseño ...

Además, dado que usted menciona que "que estaría bien utilizar un servicio en línea " , graphviz proporcionar un servicio llamado webdot para hacer gráficos.

Hay otros a lo largo de esta línea, así por ejemplo ... http://graph.gafol.net/ (parece estar abajo)

lado del cliente:

  • Trate http://arborjs.org/ para una biblioteca mínima (más o menos) que se dedica al diseño, uso esta es te gusta a preferir sus propias rutinas de renderización (div, lienzo, SVG, Paper.js, procesamiento, etc ...).

  • También me gusta http://sigmajs.org/ de un enfoque más completo, estructura en táctil de la ayuda, plugins, formatos de archivo, etc.

Curiosamente, el proyecto Eclipse tiene un / JFace componente / marco SWT capaz de mostrar y generar el formato de Graphviz 'DOT' (importación / exportación), en Java puro:

ÁNIMO (página de inicio y enlaces de descarga)

Ver http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest para ejemplos de uso.

A pesar de que ÁNIMO se promociona como un plugin de Eclipse, parece que la API de DOT-manipulación se puede utilizar independiente y externa a una instalación de Eclipse.

Saludos

Rich

Puede intentar sigma.js: http://sigmajs.org/

Es una, biblioteca de código abierto de peso ligero en Javascript para visualizar las gráficas grandes en la web.

JPGD es un analizador Graphviz en Java.Es un pequeño abandonado, pero el código es agradable y claro, y si encuentra errores, estoy seguro de que el autor aceptará las correcciones aportadas.

Aunque se anuncia como analizador, también es un generador.Puede crear gráficos como colecciones de objetos Node y Edge y luego obtener .dot usando Graph.toString().Obtener esto como un gráfico sería un simple desembolso del ejecutable de puntos Graphviz.

Alternativamente, dot es muy fácil de generar usted mismo.En el caso más simple, es sólo cuestión de escribir un encabezado encapsulado.

digraph myGraph {

...seguido de una definición de borde por borde

node1 -> node2 ;

...seguido de una llave de cierre

}

Así que tomé alook en todas las respuestas y los enlaces indicados, parece que Prefuse / llamarada será por la elección óptima. tienen visialisations muy atractivo, además de que se han construido en el soporte para gráficos.

Tal vez echa un vistazo a Google Charts ?

Puede utilizar SVG en combinación con batik. He utilizado varias veces para mostrar gráficos. Batik con Java 1.5 es muy rápido. Con esta solución se puede programar su gráfico en Java sin dependencia de oscilación. Puede añadir etiquetas en las que desee, alojarlo como un servlet y mostrarlo como PNG o SVG.

Puede crear los gráficos en SVG (esto es un documento XML).
Se utiliza Batik para transformar el documento SVG-imagen PNG / JPG.
Puede utilizar un servlet para transmitir esta imagen de vuelta al navegador.

En Java se construye un (= XML) documento SVG. Las muestras para gráficos SVG se pueden encontrar aquí: Dirigida gráfico y aquí: simple gráfico dirigido

esta pregunta , especialmente la respuesta de Stephan sobre prefuse. He leído que no es necesario interactividad, pero prefuse todavía puede ser útil.

puedo recomendaría de corazón flot - excelente

Vea ejemplos aquí .

JFreeChart podría ser la forma en que desea ir, pero que hacer una distinción entre tablas y gráficos. Tal vez se puede explicar lo que quiere decir con eso. por lo general he utilizado estos términos como sinónimos. :)

JFreeChart tiene buena dispersión, gráficos de barras y líneas, así como los divertidos como la empanada y el dial de modo tal que funcionará para ti.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top