除了Gephi,python的NetworkX也是绘制网络图的利器,后者功能更强大,能兼容Gephi的一些绘制结果,但相应学习成本也更高点。另外似乎还有一个igraph-python库,后期可以学习一下。
各个类之间的关系用网络图描述出来,主要有如下方式:
- Gephi
- networkx
- qtgraph
- matplotlib
- igraph-python
这里提供两个案例:画一个二分网络无向图,并且用圈圈表现出其社团关系,颜色表示节点种类。转载自https://zhuanlan.zhihu.com/p/51886917。
NetworkX更详细的使用方法,参见帖子<python networkx可视化节点关系>
案例1:
1. 创建网络
G = nx.Graph()
G.add_node('1')
G.add_nodes_from(['2', '3'])
#注意如果加进去临边有未出现的节点,会自动创建节点
G.add_edge(1, 2)
G.add_edge('1', '2')
#实际上edges是个hash的key,还可以对应一个value
G.add_edge(n1, n2, object=x)
G.add_edges_from([('1', '2'), ('1', '3')])
list(G.adj['1'])
G.degree['1']
G.remove_node('2')
G.remove_edge('1', '3')
2. 为节点添加属性
G[1][3]['color'] = "blue"
G.edges[1, 2]['color'] = "red"
3. 快速遍历所有临边