Как добавить масштабную линейку на график в Mayavi2/VTK?

Я хотел бы добавить масштабную линейку (например, показывающую, насколько велик микрон) к графику Mayavi, который я создаю с помощью mlab.

Например, ссылаясь на этот вопрос: Как для правильного отображения объема с некубическими вокселями в Mayavi

Я могу установить размер вокселя графика, используя

from enthought.mayavi import mlab
import numpy as np

s=64
x,y,z = np.ogrid[0:s,0:s,0:s/2]

volume = np.sqrt((x-s/2)**2 + (y-s/2)**2 + (2*z-s/2)**2)

grid = mlab.pipeline.scalar_field(data)
grid.spacing = [1.0, 1.0, 2.0]

contours = mlab.pipeline.contour_surface(grid, 
                     contours=[5,15,25], transparent=True)
mlab.show()

Я хотел бы автоматический способ добавления некоторого индикатора того, каков масштаб объекта, который я показываю. Прямо сейчас я добавляю масштабные линейки вручную с помощью inkscape к экспортируемым изображениям, но должен быть лучший способ.

Прямой способ Mayavi был бы наиболее полезным, но если в vtk есть что-то, что могло бы это сделать, я всегда могу использовать оболочку Mayavi.

Что-то вроде text3d позволит мне добавить текст, и тогда я полагаю, что смогу понять, как нарисовать линию и вычислить правильное масштабирование вручную, но я надеюсь, что есть более простой способ.


person triplepoint217    schedule 14.07.2011    source источник


Ответы (1)


Попробуйте следующее:

mlab.axes()

mlab.outline()
mlab.colorbar()

Эта ссылка: http://github.enthought.com/mayavi/mayavi/auto/mlab_reference.html поможет, как и несколько примеров.

person Prabhu Ramachandran    schedule 14.07.2011
comment
Спасибо, но я думаю, что это дает цветовую полосу, показывающую, что означает скалярное поле f (x, y, z), я надеялся найти что-то, что говорит о том, что означают координаты x, y, z с точки зрения физической единицы. - person triplepoint217; 15.07.2011