Python Mayavi : Adding points to a 3d scatter plot

标签 python 3d plot mayavi

我正在编写一个 python 应用程序来模拟 3 空间中粒子的运动。我想绘制每个步骤的位置,在应用程序运行时更新绘图,并在绘图上保留过去的位置。

我想用 mayavi 来做到这一点,但据我所知,不能简单地将点添加到现有的散点图中,而是必须一次性添加所有点。这不是我想要的。我想一次添加几个点,而不必将所有过去的点保留在内存中以便在每一步中重新绘制它们。

我一直在研究的函数是plot3d()。

http://docs.enthought.com/mayavi/mayavi/auto/mlab_helper_functions.html#mayavi.mlab.points3d

关于如何使用 python mayavi 做我想做的事情有什么想法吗?是否有另一个 python 3d 绘图包可以满足我的要求?

最佳答案

假设你命名了你的对象:

mypoints = mlab.points3d(...) 

您可以在任何阶段访问当前特征:

mypoint_data = mypoints.mlab_source.get(['points'])['points']

并添加您想要的任何内容(例如:您想要添加点 0,0,1:

mypoint_data = np.vstack((mypoint_data, np.array([[0,0,1]])))
mypoints.mlab_source.set(points=mypoint_data)

如果您有标量,则还需要使用关键字“标量”进行更新

myscalar_data = mypoints.mlab_source.get(['points'])['points']
...
mypoints.mlab_source.set(myscalar_data)

希望这有帮助并且有效。

关于Python Mayavi : Adding points to a 3d scatter plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157567/

相关文章:

math - 3D 中的点三角形碰撞检测

javascript - 更新网格或从场景中删除和添加哪个更经济有效?

r - 要在子集中显示的非数字条目的维恩图

python - 如何使用异步 for 循环遍历列表?

python - 如何将内容处置 header 设置为文件部分的附件?

opengl - COLLADA是无效格式吗?

r - 具有R和Rgl的彩色球体的3d散点图

python - Matplotlib:可以绘制从一组轴到另一组轴的线吗?

python - 从文档中检索单个属性

python - 如何使用glumpy放大/缩小3D图像?