J Cena
J Cena

Reputation: 1053

Visualise networkx graph in Gephi

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

Answers (1)

J Cena
J Cena

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

Related Questions