gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:23:36 24 4
gpt4 key购买 nike

我想使用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.8470 59 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,\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 Notebook 中获得更强大的 Mayavi 输出,即每次再次运行单元格时重新生成对象并显示它?我对 Mayavi 还很陌生,因此非常感谢任何基于 mlab 的解决方案。但是,如果这是不可能的,那么也欢迎在 mayavi 中使用更复杂的方法(例如手动构建管道)的解决方案。谢谢!

最佳答案

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

我相信在每个新图形之前使用此函数是有意义的,即使它是第一个图形,例如:

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

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

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

关于python - 在Jupyter笔记本中的不同单元格中显示mayavi X3D图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42984807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com