相关疑难解决方法(0)

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

我正在尝试导出带有一些可视化规范的图形文件.我无法弄清楚如何添加多级属性.

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)
Run Code Online (Sandbox Code Playgroud)

向节点添加属性

我想做的是添加位置但使用特定属性(名称和结构)

# compute position 
pos = nx.spring_layout(g)

# add attribute 
g.node["Andre"]["viz"]["position"]["x"]= pos["Andre"][0]
g.node["Andre"]["viz"]["position"]["y"]= pos["Andre"][1]
Run Code Online (Sandbox Code Playgroud)

这不起作用

我其实有两个问题:

  1. 如何添加多级属性
  2. 有没有办法在迭代中执行此操作(我仍然可以编写一个函数,但我想知道是否有一种方法可以从networkx做我还没有看到)

对于Info:我真正追求的是一种将网络图导出到gexf文件的方法,我可以使用gexf-js打开它而不通过gephi.

PS:我有这个问题和其他相关的问题,但据我所知,他们没有解决我所追求的问题.

python networkx gephi

2
推荐指数
1
解决办法
963
查看次数

使用NetworkX将图形导出到具有节点位置的graphml

我正在使用NetworkX 1.9.1.

我有一个图表,我需要组织职位,然后我导出到graphml格式.

我在这个问题上尝试过代码.它不起作用,这是我的例子

import networkx as nx
import matplotlib.pyplot as plt

G = nx.read_graphml("colored.graphml")

pos=nx.spring_layout(G) # an example of quick positioning
nx.set_node_attributes(G, 'pos', pos)

nx.write_graphml(G, "g.graphml")

nx.draw_networkx(G, pos)
plt.savefig("g.pdf")
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误,问题是如何保存位置(graphml不接受数组).

C:\Anaconda\python.exe C:/Users/sturaroa/Documents/PycharmProjects/node_labeling_test.py
Traceback (most recent call last):
  File "C:/Users/sturaroa/Documents/PycharmProjects/node_labeling_test.py", line 11, in <module>
    nx.write_graphml(G, "g.graphml")
  File "<string>", line 2, in write_graphml
  File "C:\Anaconda\lib\site-packages\networkx\utils\decorators.py", line 220, in _open_file
    result = func(*new_args, **kwargs)
  File "C:\Anaconda\lib\site-packages\networkx\readwrite\graphml.py", line 82, in write_graphml
    writer.add_graph_element(G)
  File "C:\Anaconda\lib\site-packages\networkx\readwrite\graphml.py", line 350, in add_graph_element
    self.add_nodes(G,graph_element)
  File "C:\Anaconda\lib\site-packages\networkx\readwrite\graphml.py", …
Run Code Online (Sandbox Code Playgroud)

python graph matplotlib graphml networkx

1
推荐指数
1
解决办法
2414
查看次数

标签 统计

networkx ×2

python ×2

gephi ×1

graph ×1

graphml ×1

matplotlib ×1