使用python制作快照图

时间:2016-09-09 23:00:15

标签: python matplotlib simulate

我有一个动态模拟,我试图在我正在写的一篇论文中想象。

我想拍摄'快照'动态随着时间的推移而变化,然后将它们全部叠加在同一画布上,根据时间绘制(对于每个快照)。

与此类似(步行机制):

enter image description here

为了完整;快照以某个固定间隔拍摄,按某些频率预定义。这就是我想要效仿的。

1 个答案:

答案 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(..)

enter image description here

在这种情况下,在模型运行时更新绘图,但当然可以通过例如保存数据并在之后将它们绘制在类似的循环中。