我有一个动态模拟,我试图在我正在写的一篇论文中想象。
我想拍摄'快照'动态随着时间的推移而变化,然后将它们全部叠加在同一画布上,根据时间绘制(对于每个快照)。
与此类似(步行机制):
为了完整;快照以某个固定间隔拍摄,按某些频率预定义。这就是我想要效仿的。
答案 0 :(得分:1)
这个答案可能需要一些迭代来改进,因为它仍然不完全清楚你的模型看起来如何,你得到什么样的数据等等。但下面是尝试#1绘制动态(醉酒棒图< / em>)时间/空间系统。
import matplotlib.pylab as pl
import numpy as np
pl.close('all')
y = np.array([2,1,0]) # y-location of hips,knees,feet
x = np.zeros((2,3)) # x-coordinates of both legs
# Plot while the model runs:
pl.figure()
pl.title('Drunk stick figure', loc='left')
pl.xlabel('x')
pl.ylabel('y')
# The model:
for t in range(10):
x[:,0] = t # start (top of legs) progress in x in time
x[:,1] = x[:,0] + np.random.random(2) # random location knees
x[:,2] = x[:,0] + np.random.random(2) # random location feet
pl.plot(x[0,:], y[:], color='k')
pl.plot(x[1,:], y[:], color='r')
# or, if you want to plot every nth (lets say second) step:
# if (t % 2 == 0):
# pl.plot(..)
在这种情况下,在模型运行时更新绘图,但当然可以通过例如保存数据并在之后将它们绘制在类似的循环中。