使用NetworkX向节点添加多级属性

2024-06-03 13:12:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试导出一个带有一些可视化规范的图形文件。我不知道如何添加多级属性。在

Import networkx as nx
#Create the Graph 
g = nx.Graph()
g.add_edge('Andre',   'Beverly')
g.add_edge('Andre',   'Diane')
g.add_edge('Andre',   'Carol')
g.add_edge('Andre',   'Fernando')
g.add_edge('Beverly', 'Diane')
nx.draw(g)

向节点添加属性

我想用一个特定的结构来添加名称和属性

^{pr2}$

这不起作用

事实上,我有两个问题:

  1. 如何添加多级属性
  2. 有没有一种方法可以在迭代中做到这一点(我仍然可以编写一个函数,但我想知道是否有一种方法可以从networkx中实现,这是我从未见过的)

信息:我真正想要的是一种将网络图导出到gexf文件中的方法,我可以用gexf-js打开这个文件,而不用经过gephi.

附言:我有this question 和其他与此相关的内容,但据我所知,它们并不涉及我所追求的。在


Tags: 文件方法networkx规范add属性可视化graph
1条回答
网友
1楼 · 发布于 2024-06-03 13:12:15

计算spring_layout()中的位置后:

for node in g.nodes():
    g.node[node]["viz"] = {'position': {'x': pos[node][0],
                                        'y': pos[node][1]
                                        }
                           }

print g.nodes(data=True)

结果:

^{pr2}$

然后你可以让nx.write_gexf(g, 'somefile.gexf')工作:-)

相关问题 更多 >