【问题标题】:Python mayavi: Adding points to a 3d scatter plotPython mayavi:向 3d 散点图添加点
【发布时间】:2013-08-10 00:44:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python 3d plot mayavi


    【解决方案1】:

    假设你为你的对象命名:

    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)
    

    希望这会有所帮助,并且有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多