Reputation: 1053
I want to visualise my networkx graph in Gephi. My graph has two types of nodes ntype="main"
and ntype="sub"
as follows.
[('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'})]
When visualising with Gephi, I want to show my main
nodes as blue and sub
nodes as grey.
Is there any special way of saving the nodes in networkx, for Gephi to identify these color codes?
Upvotes: 1
Views: 2476
Reputation: 1053
This solved my problem
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")
Upvotes: 1