在mlab.contour3d中获取连续的色彩映射

时间:2016-12-21 11:22:31

标签: python enthought mayavi colormap

为什么当我希望色彩图在这里连续时,色彩图会以3种不同的颜色离散化?

--json

Mayavi output

另外,如果不将不透明度设置为低于1,为什么我的立方体上只有一种颜色?

1 个答案:

答案 0 :(得分:1)

轮廓是访问等值点的曲线(在3D表面中)。对于数值数据,它将位于网格的点上或插值之间。

"外部"您的立方体的一部分全部为零,因此在索引10和90处有一个跳跃,可以创建轮廓曲面。

当网格中的值越过等间距轮廓值时,会创建内部边界(默认情况下总共显示3个值)。

最后,由于立方体的外部部分全部为零,没有透明度,您只能看到它,并且颜色的变化不会暗示颜色的变化。

我在下面给出一个更多级别(9)并且没有零边界的示例,它给出了水平轮廓平面。

import numpy as np
from mayavi import mlab

cube = np.zeros((100,100,100))
cube[:,:,:] = np.linspace(0, 1, np.prod(cube.shape)).reshape(cube.shape).T
mlab.contour3d(cube, colormap="jet", opacity=0.5, contours=9)
mlab.show()

您还可以考虑"切割飞机"在3D数据中生成2D切片。这些页面中有一些示例:http://docs.enthought.com/mayavi/mayavi/mlab_case_studies.htmlhttp://docs.enthought.com/mayavi/mayavi/auto/examples.html