在Jupyter笔记本电脑的不同单元格中显示mayavi X3D图形

问题描述 投票:2回答:1

我想使用mayavi在Jupyter笔记本中显示几个3D图形。为了测试它,我尝试了以下仅包含3个单元格的示例:

# first cell
from mayavi import mlab
mlab.init_notebook('x3d')

# second cell
mlab.test_plot3d()

# third cell
mlab.test_points3d()

我在玩此示例时发现了几个问题:

a)第一次运行这些像元时,第二个的输出很好,而第三个输出显示了两个3D图形的重叠。同样,在多次重复运行第二个和第三个单元格后,有时输出会崩溃并显示如下内容:

7 0.945098 0.603922,\ n 0.866667 0.945098 0.603922,\ n 0.866667 0.945098 0.603922,\ n 0.847059 0.937255 0.607843,\ n 0.847059 0.937255 0.607843,\ n 0.847059 0.937255 0.607843,\ n 0.847059 0.937255 0.607843,\ n 0.847059 0.937255 0.607843,\ n 0.847059 0.937255 0.607843,\ n 0.819608 0.929412 ...

以及以下错误消息:

Javascript error adding output!

SyntaxError: Invalid or unexpected token

See your browser Javascript console for more details.

b)我试图通过将mlab.figure()添加到第二个和第三个单元格的开头来解决重叠问题:

# second cell
mlab.figure()
mlab.test_plot3d()

# third cell
mlab.figure()
mlab.test_points3d()

当我第一次运行这些单元时,确实为我提供了单独的数字。但是,当我要重复单元格时,遇到了与上图相同的问题。

c)为了比较,我删除了第三个单元格,只保留了第二个单元格。这次,如果我在第二个单元格中使用以下代码]

# second cell
mlab.test_plot3d()

它从来没有这个崩溃问题。但是,如果我向其中添加mlab.figure()

,则反复运行它会遇到相同的问题。

所以我的问题是:有没有办法在Jupyter笔记本中获得更强大的mayavi输出,即,重新生成对象并在每次再次运行单元时显示它?我对mayavi还是一个新手,因此非常感谢基于mlab

的任何解决方案。但是,如果不可能,那么也欢迎在mayavi中使用更复杂的方法(例如手动构建管道)的解决方案。谢谢!

我想使用mayavi在Jupyter笔记本中显示几个3D图形。为了测试它,我尝试了以下仅用3个单元格的示例:#mayavi的第一个单元格导入mlab mlab.init_notebook('x3d')#...

python jupyter-notebook mayavi
1个回答
0
投票

您可以在创建新图形之前使用功能mayavi.mlab.clf清除图形。此功能的文档为there

© www.soinside.com 2019 - 2024. All rights reserved.