print libreria library graphs python graph social-graph

libreria - print graph python



¿Cómo visualizo las redes sociales con Python? (3)

Necesito definir una red social , analizarla y dibujarla. Podía dibujarlo a mano y analizarlo (calcular varias métricas) a mano. Pero no me gustaría reinventar la rueda.

He intentado usar matplotlib, pero necesito usarlo de manera interactiva, y en unas pocas líneas le digo cómo cargar los datos, y luego llamar a una función de procesamiento, que representará el gráfico como un SVG.

¿Cómo puedo visualizar las redes sociales de la manera descrita?


Hay tres respuestas que mencionan Networkx y Gephi, pero nadie mencionó graph-tool . La principal diferencia es que los algoritmos se implementan en C ++, lo que aumenta el rendimiento en comparación con, por ejemplo, Networkx.

Y, también cubre la visualización. Desde el sitio:

Dibuje convenientemente sus gráficos, utilizando una variedad de algoritmos y formatos de salida (incluso a la pantalla). Graph-tool tiene sus propios algoritmos de diseño y rutinas de dibujo interactivas y versátiles basadas en el cairo y GTK +, pero también puede funcionar como una interfaz muy cómoda para el excelente paquete graphviz.

Aquí hay un buen ejemplo de la documentación (hay muchos más):

(Bloque de partición de una red de blogs políticos).

Y, el código para ello:

>>> g = gt.collection.data["polblogs"] >>> g = gt.GraphView(g, vfilt=gt.label_largest_component(gt.GraphView(g, directed=False))) >>> state = gt.BlockState(g, B=g.num_vertices(), deg_corr=True) >>> state = gt.multilevel_minimize(state, B=2) >>> gt.graph_draw(g, pos=g.vp["pos"], vertex_fill_color=state.get_blocks(), output="polblogs_agg.pdf") <...>

(Nota: las posiciones de cada nodo están predeterminadas en este ejemplo, por lo que no se tuvo que ejecutar ningún algoritmo de diseño)

Aquí hay otro ejemplo que usa los mismos datos (y el resultado es increíble): http://ryancompton.net/2014/10/05/graph-tools-visualization-is-pretty-good/


Otra forma es Cytoscape . También puede utilizar con archivos gml.

Como dijo psychemedia, puede usar Networkx para trazar su gráfico y exportarlo a un archivo gml.

nx.write_graphml(G,''my_file.gml'')

Después de eso, en Cytoscape, haga clic en Desde archivo de red y seleccione su archivo gml. Allí, puedes cambiar el estilo también.


networkx es una biblioteca de Python muy potente y flexible para trabajar con gráficos de red. Se pueden usar conexiones dirigidas y no dirigidas para conectar nodos. Las redes se pueden construir agregando nodos y luego los bordes que los conectan, o simplemente listando pares de bordes (los nodos no definidos se crearán automáticamente). Una vez creados, los nodos (y los bordes) se pueden anotar con etiquetas arbitrarias.

Aunque se puede usar networkx para visualizar una red (consulte la documentación), es posible que prefiera usar una aplicación de visualización de red como Gephi (disponible en gephi.org ). networkx soporta una amplia gama de formatos de importación y exportación. Si exporta una red con un formato como GraphML , el archivo exportado puede cargarse fácilmente en Gephi y visualizarse allí.

import networkx as nx G=nx.Graph() G.add_edges_from([(1,2),(1,3),(1,4),(3,4)]) G >>> <networkx.classes.graph.Graph object at 0x128a930> G.nodes(data=True) >>> [(1, {}), (2, {}), (3, {}), (4, {})] G.node[1][''attribute'']=''value'' G.nodes(data=True) >>> [(1, {''attribute'': ''value''}), (2, {}), (3, {}), (4, {})] nx.write_graphml(G,''so.graphml'')