Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I visualize social networks with Python

I need to define a social network, analyze it and draw it. I could both draw it by hand and analyze it (calculate various metrics) by hand. But I would not like to reinvent the wheel.

I have tried to use matplotlib, but I need to use it interactively, and in a few lines tell it how to load the data, and then call a render function, that will render the graph as a SVG.

How can I visualize social networks in the described way?

like image 207
Mads Skjern Avatar asked Nov 03 '11 06:11

Mads Skjern


People also ask

Can you visualize data with Python?

Python offers several plotting libraries, namely Matplotlib, Seaborn and many other such data visualization packages with different features for creating informative, customized, and appealing plots to present data in the most simple and effective way.

What is used to visualize social networks?

SocNetV (Social Networks Visualizer) is a cross-platform, user-friendly tool for the analysis and visualization of Social Networks. It lets you construct networks (mathematical graphs) on a virtual canvas, or load networks of various formats (GraphML, GraphViz, Adjacency, Pajek, UCINET, etc).


1 Answers

networkx is a very powerful and flexible Python library for working with network graphs. Directed and undirected connections can be used to connect nodes. Networks can be constructed by adding nodes and then the edges that connect them, or simply by listing edge pairs (undefined nodes will be automatically created). Once created, nodes (and edges) can be annotated with arbitrary labels.

Although networkx can be used to visualise a network (see the documentation), you may prefer to use a network visualisation application such as Gephi (available from gephi.org). networkx supports a wide range of import and export formats. If you export a network using a format such as GraphML, the exported file can be easily loaded into Gephi and visualised there.

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') 
like image 167
psychemedia Avatar answered Oct 05 '22 11:10

psychemedia