una trabajo son reglas reglamento qué que publica proyecto plan pisos pasos para organizar nombre necesarias introduccion hacer crear construccion consiste comunitaria como bibliotecas biblioteca abrir language-agnostic graph graph-theory

language agnostic - trabajo - ¿Qué es una buena biblioteca de gráficos de red para el lenguaje X?



que reglas son necesarias para organizar una biblioteca (6)

Debería agregar la herramienta gráfica a la lista de Python. Es muy completo, y se implementa en C ++, con Boost Graph Library, por lo que es mucho más rápido que las alternativas de solo pitón, como NetworkX.

Descargo de responsabilidad: soy el autor de graph-tool. :-)

Me he dado cuenta de que una pregunta recurrente es: "Qué es una buena biblioteca de gráficos de red para el lenguaje X". He jugado con bastantes de las bibliotecas y puedo compartir mis experiencias contigo.

Python : NetworkX es una biblioteca robusta que tiene visualización incorporada pero también tiene una interfaz para Graphviz usando pyGraphviz . (pyGraphviz y NetworkX están escritos por el mismo autor). NetworkX es de código abierto y muy fácil de usar.

Perl : Circos está desarrollado para visualizar genomas y otros conjuntos de datos altamente complejos. Siempre usará un diseño circular pero a menudo es el diseño más apropiado si su red es realmente grande y su puntaje de ''modularidad'' es bajo. Circos es de código abierto.

. Net : NodeXL ha sido desarrollado por Microsoft Research y es tanto un complemento para Excel como una biblioteca .Net 3.5. Es bastante abierto (para los estándares de Microsoft) y utiliza el algoritmo Fruchterman-Reingold para la visualización.

Java : JUNG2 ha sido lanzado recientemente y también es una biblioteca robusta. Tiene visualización extendida y soporte de métricas clave. JUNG2 es de código abierto.

UbiGraph : UbiGraph tiene interfaces con diferentes idiomas, incluido Python (y NetworkX tiene soporte para UbiGraph), Ruby, PHP, Java, C, C ++, C #, Haskell y OCaml. Tiene una visualización en 3D muy clara de gráficos de red usando un servidor XML-RPC. La versión básica es gratuita, tienes que pagar por la versión profesional.

Independiente: siempre puede usar un paquete comercial como: Graphviz (Win, Linux, OSX), Pajek (Win), UCINET (Win) o incluso Visio (Win).

Estoy seguro de que hay muchos más paquetes, pero estos son los que he usado yo mismo. ¿Qué otras bibliotecas o paquetes están disponibles?


El Stanford Network Analysis Project (SNAP) se escribió en C ++ y se diseñó con el rendimiento en mente para analizar grandes conjuntos de datos. El proyecto se ha ampliado con una biblioteca de Python, y tiene una documentación completa.

Tenga en cuenta también que el proyecto es un buen recurso para conjuntos de datos empíricos de una variedad de dominios.


En Java, el prefuse es de lejos el mejor paquete de dibujo de gráficos. Tiene un algoritmo de diseño muy rápido orientado a la fuerza, y como puede ajustar los parámetros en tiempo real y arrastrar los nodos para que el gráfico se vea como quiere, podrá explorar y organizar gráficos mucho más grandes que con cualquier otro. sistema no interactivo.

Prueba este applet de demostración y te enamorarás también ...


Para Clojure , hay loom . Su WIP pero se ve bien.


Si le gustan los ejemplos en esta página , eche un vistazo a las capacidades de gráficos de Mathematica. El autor de la página de la galería, Yifan Hu, solía trabajar para Wolfram Research, donde desarrolló algoritmos de dibujo de gráficos para enormes gráficos. Esos algoritmos ahora están integrados en Mathematica. Dependiendo de cómo pretenda utilizar los dibujos de gráficos, puede obtener un gran beneficio al poder usar Mathematica para analizar sus gráficos; ver, por ejemplo, esta publicación de blog .


yFiles es un conjunto de algoritmos de diseño que ofrece la gama más amplia de diferentes estilos de diseño sofisticados automáticos. Es una oferta comercial y está disponible para varias plataformas e idiomas populares: Javascript, Java, C # y más.

Hay una demostración interactiva en línea que muestra muchos de los algoritmos disponibles y las bibliotecas se pueden evaluar de forma gratuita.

Descargo de responsabilidad: yo trabajo para la compañía que crea estas bibliotecas, sin embargo, en SO no represento a mi empleador. Esta recomendación se basa en mi propia opinión. He visto muchas implementaciones de conjuntos de diseños diferentes para los idiomas anteriores en los últimos 15 años y no conozco ninguna otra implementación disponible que sea tan completa y extensible como esta.