用networkx和matplotlib绘制显示网络图

1.用networkx的Graph()方法来生成一个无多重边无向图,其中networkx可以生成四种图,分别为无多重边无向图、无多重边有向图、有多重边无向图和有多重边有向图。

import networkx as nx
G = nx.Graph()
G = nx.DiGraph()
G = nx.MultiGraph()
G = nx.MultiDiGraph()

 

 而我要生成的是无多重边无向图,因此我用G = nx.Graph()。

2.添加结点,在这里我选用的是add_nodes_from(nodes),参数nodes应为由结点组成的列表,如[1,2,3,4]。当然,也可以用add_node_from(node)来依次添加结点。

3.添加边,其实边分为有权值的边和无权值的边,我需要添加的是有权值的边,用add_weighted_edges_from(edges)(注意python3是这个方法,python2可能方法名不同),edges参数应为[('a','b',2),('c','d','1')]这种类型,其中a、b为边的两个结点,2则为权值。

前面所讲两个方法都是图G的方法。

4.用networkx来绘出网络图,nx.draw(G,pos,node_color,edge_color,width_size,node_size,with_labels)。

G为我们想要绘出的图,pos为网络图布局,我试了很多布局发现nx.drawing.layout.spring_layout(G)通常是我们想要的布局,node_color、edge_color、width_si

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值