我想要做的是更新循环中的mayavi阴谋。我想要在我指定的时间更新剧情(与动画装饰器不同)。更新mayavi阴谋循环
所以的代码示例一块,我想获得运行是:
import time
import numpy as np
from mayavi import mlab
V = np.random.randn(20, 20, 20)
s = mlab.contour3d(V, contours=[0])
for i in range(5):
time.sleep(1) # Here I'll be computing a new V
V = np.random.randn(20, 20, 20)
# Update the plot with the new information
s.mlab_source.set(scalars=V)
然而,这并不能显示数字。如果我在循环中包含mlab.show()
,那么这会窃取焦点并且不允许代码继续。
我觉得我应该使用的是性状数字(例如this)。我可以按照示例特征应用程序来运行更新滑块时实时更新的图形。但是,当我的代码要求更新时,我无法更新它;现在的焦点是visualization.configure_traits()
'被盗'。
任何指针或适当的文档链接,将不胜感激。
编辑
大卫·温彻斯特的回答变得更近了一步,以解决方案。
但是,正如我在评论中指出的那样,我无法在time.sleep()
步骤中用鼠标操作图形。正是在这一步中,在完整的程序中,计算机将忙于计算V的新值。在此期间,我希望能够操纵该数字,用鼠标旋转它。
程序在我的最新评论,你可以简化代码和操作更新期间的数字是不带'time.sleep()'。这对你有用吗?由于Mayavi被移植到'qt',所以解决方案应该比使用'wx'更好:0 –