python networkx 包绘制复杂网络关系图的实现包绘制复杂网络关系图的实现
主要介绍了python networkx 包绘制复杂网络关系图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
友们下面随着小编来一起学习学习吧
1. 创建一个图创建一个图
import networkx as nx
g = nx.Graph()
g.clear() #将图上元素清空
所有的构建复杂网络图的操作基本都围绕这个g来执行。
2. 节点节点
节点的名字可以是任意数据类型的,添加一个节点是
g.add_node(1)
g.add_node("a")
g.add_node("spam")
添加一组节点,就是提前构建好了一个节点列表,将其一次性加进来,这跟后边加边的操作是具有一致性的。
g.add_nodes_from([2,3])
or
a = [2,3]
g.add_nodes_from(a)
这里需要值得注意的一点是,对于add_node加一个点来说,字符串是只添加了名字为整个字符串的节点。但是对于
add_nodes_from加一组点来说,字符串表示了添加了每一个字符都代表的多个节点,exp:
g.add_node("spam") #添加了一个名为spam的节点
g.add_nodes_from("spam") #添加了4个节点,名为s,p,a,m
g.nodes() #可以将以上5个节点打印出来看看
加一组从0开始的连续数字的节点
H = nx.path_graph(10)
g.add_nodes_from(H) #将0~9加入了节点
#但请勿使用g.add_node(H)
删除节点
与添加节点同理
g.remove_node(node_name)
g.remove_nodes_from(nodes_list)
3. 边边
边是由对应节点的名字的元组组成,加一条边
g.add_edge(1,2)
e = (2,3)
g.add_edge(*e) #直接g.add_edge(e)数据类型不对,*是将元组中的元素取出
加一组边
g.add_edges_from([(1,2),(1,3)])
g.add_edges_from([("a","spam") , ("a",2)])
通过nx.path_graph(n)加一系列连续的边
n = 10
H = nx.path_graph(n)
g.add_edges_from(H.edges()) #添加了0~1,1~2 ... n-2~n-1这样的n-1条连续的边
删除边
同理添加边的操作
g.remove_edge(edge)
g.remove_edges_from(edges_list)
4. 查看图上点和边的信息查看图上点和边的信息
g.number_of_nodes() #查看点的数量
g.number_of_edges() #查看边的数量
g.nodes() #返回所有点的信息(list)
g.edges() #返回所有边的信息(list中每个元素是一个tuple)
g.neighbors(1) #所有与1这个点相连的点的信息以列表的形式返回
g[1] #查看所有与1相连的边的属性,格式输出:{0: {}, 2: {}} 表示1和0相连的边没有设置任何属性(也就是{}没有信息),同理1和2相连的边也没有任何属性
method explanation
Graph.has_node(n) Return True if the graph contains the node n.
Graph.__contains__(n) Return True if n is a node, False otherwise.
Graph.has_edge(u, v) Return True if the edge (u,v) is in the graph.
Graph.order() Return the number of nodes in the graph.
Graph.number_of_nodes() Return the number of nodes in the graph.
Graph.__len__() Return the number of nodes.
Graph.degree([nbunch, weight]) Return the degree of a node or nodes.
Graph.degree_iter([nbunch, weight]) Return an iterator for (node, degree).
Graph.size([weight]) Return the number of edges.
Graph.number_of_edges([u, v])
Return the number of edges between two
nodes.
Graph.nodes_with_selfloops() Return a list of nodes with self loops.
Graph.selfloop_edges([data, default]) Return a list of selfloop edges.
Graph.number_of_selfloops() Return the number of selfloop edges.
5. 图的属性设置图的属性设置
为图赋予初始属性
评论0