2017-02-21 6 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

В майави есть ошибка. Это связано с несинхронизированными изменениями с VTK и, таким образом, немного сложно определить. Существует дискуссия на GitHub MayaVi в https://github.com/enthought/mayavi/issues/388

Также эта ошибка появляется с protein.py пример, который приходит с MayaVi и фиксируется там, добавив

pts.mlab_source.update() 

после установки линии. Он фиксируется онлайн для примера на https://github.com/enthought/mayavi/commit/afb17fceafe787c8260ca7a37fbb3b8c2fbfd36c

Использование исправления не работает для меня, хотя вы можете попробовать.

+0

Спасибо, в моем случае это заставили трубы появиться. – nanenaro

Смежные вопросы