我正在尝试创建两个动画子图,它们同时显示。其中一个应该是通过物理模拟显示粒子的轨迹,另一个是其速度分布的直方图。
我成功地用随机生成的绘图对粒子动画进行了子图形化。他们俩都按预期工作。现在,我试图用直方图更改随机生成的图,但是我没有成功。我提供了对我有用的代码。
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)您认为将图替换为直方图的最佳解决方案是什么?