【问题标题】:Making snapshot plots using python使用python制作快照图
【发布时间】:2016-09-09 23:00:15
【问题描述】:

我有一个动态模拟,我试图在我正在撰写的论文中进行可视化。

我想拍摄动态的“快照”,因为它们随着时间的推移而进展,然后将它们全部叠加在同一个画布上,按时间绘制(针对每个快照)。

与此类似(行走机制):

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

【问题讨论】:

  • 老实说我真的不明白你的问题..你试图绘制什么样的数据?从字面上看,就像一根拐杖,用线条连接模型中的坐标?模型是 Python 中的,还是您使用 Python 进行后处理? “我的兴趣在于子情节 B、C 和 D” 是什么意思?
  • @Bart,这不是很明确的道歉;我将图像从具有子图的图像更改为当前图像,以使我想要绘制的内容变得明显。再说一遍:我想在同一张画布上绘制不同时间点的动态系统。这是一个非常标准的情节,例如机器人技术,但我找不到任何说明如何实现它的资源。

标签: python matplotlib simulate


【解决方案1】:

这个答案可能需要一些迭代来改进,因为它仍然不完全清楚你的模型看起来如何,你得到什么样的数据等等。但下面是尝试#1,它绘制了一个动态(醉酒的简笔画) 时间/空间系统。

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

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

【讨论】:

  • 噢噢噢噢噢。整洁的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 2016-02-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多