algorithm - reloj - Algoritmo de diseño automático de gráficos
graficos para dashboard excel (5)
Para simplificar el problema, tengo un gráfico que contiene nodos y bordes que están en un plano 2D.
Lo que quiero hacer es hacer clic en un botón y hacer que el diseño del gráfico quede automáticamente limpio. Con esto me refiero al cruce mínimo de bordes, buen espacio entre nodos, tal vez incluso represente la escala del gráfico (bordes ponderados).
Sé que esto es completamente subjetivo de lo que es un gráfico de aspecto limpio, pero ¿alguien sabe de un algoritmo para empezar, en lugar de reinventar la rueda?
Gracias.
Encontrarás http://graphdrawing.org/ y este tutorial , de Roberto Tamassia , profesor en la Universidad de Brown, bastante útil.
Me gustan mucho las técnicas dirigidas por la fuerza (p. 66-72 en el tutorial) como Spring Embedder .
Usted asume que hay una primavera u otra fuerza entre dos nodos adyacentes y deja que la naturaleza (simulación) haga el trabajo :)
También JGraph si quieres los diseños en Java (yo trabajo en el proyecto).
Una buena guía visual de cómo se ven realmente los diseños más populares: sigue el link
Yo diría que es Noufal Ibrahim, pero también podría ver más precisamente la API C del proyecto graphviz . Incluye una lib para compilar su gráfico ( libgraph.pdf ) con todos los nodos y bordes, y una lib para diseñar el gráfico ( libgvc.pdf ) (simplemente calcule cada posición de los nodos), para que luego pueda visualizarlo en su propia IU por ejemplo.
Sugeriría que eche un vistazo a graphviz . El programa de dot
puede tomar una especificación de un gráfico y generar una imagen de la red para usted un tanto "limpiamente". El enlace "teoría" en esa página le brinda algunos enlaces que podrían ser relevantes si está interesado en los antecedentes teóricos.