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

3 投票
1 回答
1630 浏览
提问于 2025-04-16 21:32

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

例如,参考这个问题:如何在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

试试下面这个:

mlab.axes()

mlab.outline()
mlab.colorbar()

这个链接:http://github.enthought.com/mayavi/mayavi/auto/mlab_reference.html 会对你有帮助,还有很多例子可以参考。

撰写回答