Estoy utilizando networkx (un paquete de dibujo de gráficos python) http://networkx.lanl.gov/index.html para uno de mis proyectos. Aunque networkx es bastante bueno, la función de visualización es una mierda debido a la cantidad de bordes transversales. ¿Hay alguna manera de minimizar los bordes cruzados en un gráfico? Me refiero a un algoritmo que puede ordenar los nodos de manera que se minimicen los bordes cruzados.Minimizar bordes cruzados en un gráfico
7
A
Respuesta
3
La determinación de un diseño de gráfico plano que minimiza el número de cruces es NP-Hard. Vea la página de la wiki en Crossing Number.
Podría intentar algunas heurísticas, la disposición basada en la fuerza es bastante popular, creo (graphviz las usa, si recuerdo correctamente).
También podría probar algunos algoritmos de aproximación, debería encontrar referencias en la página wiki que he vinculado.
Espero que ayude.
Cuestiones relacionadas
- 1. Algoritmo para encontrar bordes redundantes en un gráfico o árbol
- 2. Creando un gráfico con bordes de diferentes colores en Mathematica
- 3. Encontrar 'bordes de cuello de botella' en un gráfico
- 4. Gráfico de dibujo con bordes ponderados
- 5. Problema de ruta en un gráfico: minimizar el costo marginal promedio en lugar del costo total
- 6. Encuentra el máximo no. de bordes en el gráfico
- 7. ¿Cuántos bordes puede haber en un DAG?
- 8. Bordes ocultos en Graphviz
- 9. Lenguaje de gráfico de puntos: ¿cómo hacer bordes bidireccionales?
- 10. Visualizar un gráfico en matlab
- 11. necesito prefigurar los bordes del gráfico como flechas
- 12. Componentes de Android para mostrar un gráfico (nodos y bordes, en 2D)?
- 13. Implementando un gráfico dirigido en python
- 14. Dibujar un gráfico web
- 15. Minimizar vértices poligonales
- 16. .NET Minimizar en la bandeja Y Minimizar los recursos necesarios
- 17. ¿Modelar un gráfico no dirigido en Rails?
- 18. Iteración a través de los pesos de los bordes de un aumento de const :: gráfico
- 19. ¿Cómo transformo un gráfico no dirigido y muy cíclico en un gráfico acíclico dirigido?
- 20. ¿Cómo solo mantener nodos en networkx-graph con 2+ bordes salientes o 0 bordes salientes?
- 21. Hacer un gráfico Gráfico en C#
- 22. Autenticación de dominios cruzados
- 23. Gráfico con nodos en Android
- 24. navegadores cruzados jquery animate scrollTop
- 25. Teoría de gráficos: dividir un gráfico
- 26. Dependencias de módulos cruzados en Boost Python
- 27. Cómo agregar "irrelevante" bordes
- 28. ¿Cómo minimizar HTML?
- 29. JavaFX primaryStage eliminar los bordes de Windows?
- 30. RegEx para minimizar CSS
¿Has probado Graphviz para tu dibujo? Podría ser mejor para minimizar los cruces (especialmente Dot si tiene el tipo de gráficos que prefiere). ¿Qué tipo de gráfico tienes (es decir, de dónde viene)? –
Pensé que networkx usa graphviz para mostrar (a través de pydot). Estos gráficos provienen de rastros de un tipo especial de redes. Los anillos son los más golpeados :( –
posible duplicado de [Planar Graph Layouts] (http://stackoverflow.com/questions/2347748/planar-graph-layouts) –