Networkx 带有plot3d和points3d的Mayavi网络动画

Networkx 带有plot3d和points3d的Mayavi网络动画,networkx,mayavi,Networkx,Mayavi,我尝试用mayavi设置许多节点的动画。现在,我想根据节点之间的接近程度包括节点之间的链接,并在动画中对此进行说明,但这不起作用。如果我使用x_pos而不是x_neigh,我将看到节点之间的一些链接,但是我想控制要显示的链接。有人能帮忙吗 plt = mlab.points3d(x_pos, y_pos, z_pos, resolution=5, scale_factor=8) plt2 = mlab.plot3d(x_neigh, y_neigh, z_neigh, tube_radius=N

我尝试用mayavi设置许多节点的动画。现在,我想根据节点之间的接近程度包括节点之间的链接,并在动画中对此进行说明,但这不起作用。如果我使用x_pos而不是x_neigh,我将看到节点之间的一些链接,但是我想控制要显示的链接。有人能帮忙吗

plt = mlab.points3d(x_pos, y_pos, z_pos, resolution=5, scale_factor=8)
plt2 = mlab.plot3d(x_neigh, y_neigh, z_neigh, tube_radius=None)
msplt = plt.mlab_source
msplt2 = plt2.mlab_source
@mlab.animate(delay=100,ui=False)
def anim():
    while True:
        # Build nodes list
        x_pos = np.array([(swarm[i].x_pos) for i in range(SIZE)])
        y_pos = np.array([(swarm[i].y_pos) for i in range(SIZE)])
        z_pos = np.array([(swarm[i].z_pos) for i in range(SIZE)]) 
        # Build links list
        x_neigh, y_neigh, z_neigh =    create_geometric_random_graph(x_pos,y_pos,z_pos)
        msplt.set(x=x_pos, y=y_pos, z=z_pos)
        msplt2.set(x=x_neigh, y=y_neigh, z=z_neigh)
        yield
anim()
mlab.show()

我尝试了msplt2的“重置”而不是“设置”,因为每次运行的链接数量都不同,但没有成功:-(我不确定是否可以切换
plot3d
图形的各个链接。一个选项是在循环中调用
plot3d
。另一个选项(更复杂,不简单)选项是将可见性标量附加到每个边上,并使用不透明度传递函数切换单个边的可见性。对于后一种方法,请参见,例如,要启动,我尝试了msplt2的“重置”而不是“设置”,因为每次运行的链接数不同,但没有成功:-(我不确定是否可以切换
plot3d
图形的各个链接。一个选项是在循环中调用
plot3d
。另一个选项(更复杂,不简单)选项是将可见性标量附加到每个边,并使用不透明度传递函数切换单个边的可见性。对于后一种方法,请参见例如开始