""" ======= Mayavi2 ======= """ import networkx as nx import numpy as np from mayavi import mlab # some graphs to try # H=nx.krackhardt_kite_graph() # H=nx.Graph();H.add_edge('a','b');H.add_edge('a','c');H.add_edge('a','d') # H=nx.grid_2d_graph(4,5) H = nx.cycle_graph(20) # reorder nodes from 0,len(G)-1 G = nx.convert_node_labels_to_integers(H) # 3d spring layout pos = nx.spring_layout(G, dim=3) # numpy array of x,y,z positions in sorted node order xyz = np.array([pos[v] for v in sorted(G)]) # scalar colors scalars = np.array(list(G.nodes())) + 5 pts = mlab.points3d( xyz[:, 0], xyz[:, 1], xyz[:, 2], scalars, scale_factor=0.1, scale_mode="none", colormap="Blues", resolution=20, ) pts.mlab_source.dataset.lines = np.array(list(G.edges())) tube = mlab.pipeline.tube(pts, tube_radius=0.01) mlab.pipeline.surface(tube, color=(0.8, 0.8, 0.8)) mlab.show()