networkx —— 基本操作及画图

这几天在用networkx,官方文档是这个,很全也很详细,这里简单记录一些简单的用法和使用过程中的菜鸡看法。

这篇主要记一下networkx基本图创建和如何画图。

环境
Python 3.6.3
networkx 2.4
matplotlib 2.1.0

图的创建

这里主要介绍一下networkx中定义的图结构,以及以无向图为例的用法。

图的类型

networkx中规定了四种图:无向图、有向图、多重无向图、多重有向图,所有图允许出现自环。

区别:

名称 方向 多重边
Graph 无向
DiGraph 有向
MultiGraph 无向
MultiDiGraph 无向

我的实验中用Graph类型的比较多,所以这里先介绍一下无向图Graph的用法。

在networkx里面,图的点、边的都是xxView这样一个结构,有的时候需要转换一下才能直接读取(具体是个什么我也不知道,但是看起来像个字典,我也是这么理解的)

新建无向图

import networkx
# 新建一个空的无向图G
G = nx.Graph()

加入节点

# 一次加入一个结点
G.add_node(0)
# 从列表中加入节点
G.add_nodes_from([1,2])
# 从另一个图H中合并,path_graph(n)表示生成一个n个结点的路径图
H = nx.path_graph(10)
G.add_nodes_from(H)

以第三种方式加入结点时,H可以作为G的一个结点使用。

加入边

# 一次加入一条边
G.add_edge(1,2)
# 从列表中加入边,注意括号
G.add_edges_from([(1,2),(2,3)])
# 从另一个图H中合并
G.add_edges_from(H.edges)

删除

G.remove_node(1)
G.remove_nodes_from([2,3])
G.remove_edge(5,6)
G.remove_edges_from([(7,8),(8,9)])

删除点边和加入点边操作类似,需要注意的是删除一个点时会删除与之连接的所有边。

查看图

# 查
  • 12
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值