2017-02-21 57 views
2

我想用4个节点和3个边画很简单图:Mayavi的不画线

from numpy import array, vstack 
    from mayavi import mlab 

    mlab.figure(1, bgcolor=(1, 0.9, 1)) 
    mlab.clf() 
    x = array([0, 3, 2, 3]) 
    y = array([0, 4, 5, 1]) 
    z = array([0, 0, 1, 1]) 
    color = array([0.1, 0.3, 0.5, 0.7]) 

    pts = mlab.points3d(x, y, z, 
         color, 
         scale_factor=1, 
         scale_mode='none', 
         colormap='Blues', 
         resolution=20) 

    edges = vstack([[0, 1], [0, 2], [0, 3]]) 
    pts.mlab_source.dataset.lines = edges 
    tube = mlab.pipeline.tube(pts, tube_radius=0.1, tube_sides=7) 
    mlab.pipeline.surface(tube, color=(0.8, 0.8, 0.8)) 
    mlab.show() 

它返回: mayavi graph fail

为什么边缘缺失?

回答

2

Mayavi中有一个关于此的错误。它与VTK的非同步更改有关,因此有点难以查明。有在编写Mayavi的GitHub上的讨论https://github.com/enthought/mayavi/issues/388

的错误也显示了与Mayavi的出现的protein.py例子,它是通过设置行后加入

pts.mlab_source.update() 

固定在那里。它是固定在线为例https://github.com/enthought/mayavi/commit/afb17fceafe787c8260ca7a37fbb3b8c2fbfd36c

使用修复程序并不适用于我虽然但你可以尝试。

+0

谢谢,在我的情况下,它迫使管出现。 – nanenaro