【问题标题】:Using Mayavi and Mlab to plot "bubbles"使用 Mayavi 和 Mlab 绘制“气泡”
【发布时间】:2016-01-20 18:34:09
【问题描述】:

目前,我正在尝试使用 Mayavi/Mlab 在 3D 空间中绘制一些类似“气泡”的形状。这些气泡由形状为(840,1100,30) 的numpy 数组表示,其中参数表示(x,y,z),任何x,y,z 的值都是1 或0。该数组可以被认为是体素的集合,这些体素要么处于开启状态,要么处于开启状态。离开。我尝试使用以下命令绘制此数据:

mlab.contour3d(finalVolume)
mlab.show()

但情节是二维而不是三维。我查看了文档,但无法理解。如果有人可以提供一些帮助或推动正确的方向,那么我将非常感激! 谢谢!

【问题讨论】:

  • 原因看起来像 2D 可能是由于缩放。 mayavi 默认情况下会将每个体素视为 1x1x1。这意味着您的整个阵列的宽度/长度将是其高度的约 30 倍。因此,它看起来是 2D 的,即使不是。
  • 我确信我犯了一个代码错误,以至于我根本不认为这是一个解决方案。然而,你完全正确!谢谢!

标签: python numpy matplotlib mayavi


【解决方案1】:

听起来您需要使用体积渲染来完成此操作。这可以通过以下方式完成:

mlab.pipeline.volume(mlab.pipeline.scalar_field(s), vmin=0, vmax=0.8)

您需要使用 vmin 和 vmax 调整不透明度传递函数以制作合适的图像。可以在以下位置找到有关体积渲染的示例:http://docs.enthought.com/mayavi/mayavi/mlab.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2011-12-19
    • 2021-11-13
    • 2022-01-03
    • 2022-07-12
    相关资源
    最近更新 更多