如何在Mayavi2 / VTK中为绘图添加比例尺?

时间:2011-07-14 15:50:02

标签: python scipy vtk mayavi

我想在我用mlab创建的mayavi图中添加一个比例尺(例如显示微米有多大)。

例如,引用此问题:How to display a volume with non-cubic voxels correctly in 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之类的东西会让我添加文字,然后我想我也可以弄清楚如何绘制一条线并手动计算正确的缩放比例,但我希望有一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

mlab.axes()

mlab.outline()
mlab.colorbar()

这个参考:http://github.enthought.com/mayavi/mayavi/auto/mlab_reference.html会有所帮助。