Mayavi 不画线
Mayavi doesn't draw lines
我想画一个非常简单的图,有 4 个节点和 3 个边:
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()
它 returns 是:
为什么边缘缺失?
Mayavi 中存在与此相关的错误。它与 VTK 的不同步更改有关,因此有点难以查明。 Mayavi的GitHubhttps://github.com/enthought/mayavi/issues/388
有讨论
该错误也出现在 Mayavi 附带的 protein.py
示例中,并通过添加
修复了该错误
pts.mlab_source.update()
设置线条后。对于 https://github.com/enthought/mayavi/commit/afb17fceafe787c8260ca7a37fbb3b8c2fbfd36c
中的示例,它已在线修复
尽管使用修复对我不起作用,但您可以试试。
我想画一个非常简单的图,有 4 个节点和 3 个边:
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()
它 returns 是:
为什么边缘缺失?
Mayavi 中存在与此相关的错误。它与 VTK 的不同步更改有关,因此有点难以查明。 Mayavi的GitHubhttps://github.com/enthought/mayavi/issues/388
有讨论该错误也出现在 Mayavi 附带的 protein.py
示例中,并通过添加
pts.mlab_source.update()
设置线条后。对于 https://github.com/enthought/mayavi/commit/afb17fceafe787c8260ca7a37fbb3b8c2fbfd36c
中的示例,它已在线修复尽管使用修复对我不起作用,但您可以试试。