我想在 Gephi 中可视化我的 networkx 图表。我的图表有两种类型的节点ntype="main"
和ntype="sub"
,如下所示。
[('organisation', {'ws': 347.9, 'ntype': 'main'}), ('employee', {'ws': 0, 'ntype': 'sub'}),
('minor_staff', {'ws': 0, 'ntype': 'sub'}), ('assets', {'ws': 0, 'ntype': 'sub'}),
('stocks', {'ws': 315.0, 'ntype': 'main'}), ('HR', {'ws': 0, 'ntype': 'sub'}),
('Director_board', {'ws': 0, 'ntype': 'sub'}), ('stakeholders', {'ws': 0.1, 'ntype': 'sub'}),
('stockmarket', {'ws': 488.5, 'ntype': 'main'}), ('events', {'ws': 0, 'ntype': 'sub'}),
('facilities', {'ws': 0, 'ntype': 'extended'})]
使用Gephi进行可视化时,我希望将main
节点显示为蓝色,将sub
节点显示为灰色。
是否有任何特殊方法可以保存networkx中的节点,以便Gephi识别这些颜色代码?
答案 0 :(得分:1)
这解决了我的问题
import networkx as nx
""" Create a graph with three nodes"""
G = nx.Graph()
G.add_node('red', ws=1.0, ntype = 'main')
G.add_node('green', ws=1.5, ntype = 'sub')
G.add_node('blue', ws=1.2, ntype = 'sub')
for item in G.nodes(data = True):
if item[1]['ntype'] == 'main':
G.node[item[0]]['viz'] = {'color': {'r': 255, 'g': 0, 'b': 0, 'a': 0}}
elif item[1]['ntype'] == 'sub':
G.node[item[0]]['viz'] = {'color': {'r': 0, 'g': 255, 'b': 0, 'a': 0}}
""" Write to GEXF """
# Use 1.2draft so you do not get a deprecated warning in Gelphi
nx.write_gexf(G, "file2.gexf", version="1.2draft")