从动画通常的子图到子直方图时出现问题

时间:2019-06-08 02:28:26

标签: python matplotlib animation

我正在尝试创建两个动画子图,它们同时显示。其中一个应该是通过物理模拟显示粒子的轨迹,另一个是其速度分布的直方图。

我成功地用随机生成的绘图对粒子动画进行了子图形化。他们俩都按预期工作。现在,我试图用直方图更改随机生成的图,但是我没有成功。我提供了对我有用的代码。

fig, axes = plt.subplots(1,2)

lines=[]

l1, = axes[0].plot(box.state[:,0], box.state[:,1], 'bo', ms=6) 
lines.append(l1)

l2, = axes[1].plot(data[2,0],Z)
lines.append(l2)

def run(it):
    global box, dt
    box.step(dt)

    l1.set_data(box.state[:, 0], box.state[:, 1])
    l2.set_data(data[1, it],Z)
    return lines    

ani=animation.FuncAnimation(fig, run, frames=6000, 
                        interval=10, blit=True)

plt.show()

如果我现在替换l2,则将axis [1] .plot(data [2,0],Z)替换为 l2,= axes [1] .hist(data [2,0])然后我得到ValueError:太多的值无法解包(预期1)。

我尽了最大的努力来遍历Internet资源,尤其是StackOverflow,但不幸的是无法实现。

1)如果您能告诉我为什么会出现此错误,我将不胜感激。

2)有没有很好的方法可以对直方图进行子图绘制?

3)您认为将图替换为直方图的最佳解决方案是什么?

0 个答案:

没有答案