In [1]:
import networkx as nx
from mayavi import mlab
import numpy as np
import random as rd
from IPython.display import Image
from IPython.core.display import HTML 
In [2]:
#definicija funkcij
def draw(G,pos):
    draw_networkx_nodes(G,pos[:,0:2],node_size=20*pos[:,3],alpha=0.9,linewidths=1.0)
    draw_networkx_edges(G,pos[:,0:2])
    #plt.xlim(4,5)
    #plt.ylim(4,11)
    plt.show()

def draw_3d(pos,graph,size,weight):
    xyz=np.array([pos[v] for v in sorted(graph)])
    pts = mlab.points3d(pos[:,0], pos[:,1], pos[:,2],size[:],scale_factor=0.2,scale_mode='none',colormap='jet',resolution=20)#
    pts.mlab_source.dataset.lines = np.array(graph.edges())
    tube = mlab.pipeline.tube(pts,tube_radius=0.01)#weight[:]
    mlab.pipeline.surface(tube, color=(1.0,0.0,0.0))
In [3]:
N=10
G=nx.Graph()
size=np.zeros([N],float)
pos=[]
for i in range(N):
    G.add_node(i)
    size[i]=rd.random()*10
    pos.append([rd.randint(0,9),rd.randint(0,9),rd.randint(0,9)])

for i in range(N):
    j=rd.randint(0,9)
    while j==i:
        j=rd.randint(0,9)
    G.add_edge(i,j,weight=rd.random()*10)
In [4]:
edges = G.edges()
weight = [G[u][v]['weight'] for u,v in edges]

pos=np.array(pos)
draw_3d(pos,G,size,weight)
mlab.savefig("3D_graph.png",magnification=2)
In [5]:
Image("3D_graph.png", width=500, height=500)
Out[5]:
In [ ]: