首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有散点的matplotlib动画

问带有散点的matplotlib动画
EN

Stack Overflow用户
提问于 2020-06-03 00:11:40
回答 2查看 164关注 0票数 0

我有以下代码:

代码语言:javascript
复制
sim = simulator()
fig, ax = plt.subplots()
scat = ax.scatter(sim.XY[:,0],sim.XY[:,1])

def animate(i):
    sim.run()
    scat.set_offsets(sim.XY)  # update the data.  
    return scat

ani = FuncAnimation(fig, animate, interval=10, blit=True, save_count=50)

"sim“对象方法"sim.run()”更新为(100,2)数组的sim.XY。

在我的第三行之后,我得到了一个预期的散点图。

但是当我尝试动画(从第5行向下)时,我得到一个错误消息说。有人能帮帮忙吗?

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\anaconda3\lib\site-packages\matplotlib\cbook\__init__.py", line 216, in process
    func(*args, **kwargs)
  File "C:\Users\anaconda3\lib\site-packages\matplotlib\animation.py", line 953, in _start
    self._init_draw()
  File "C:\Users\\anaconda3\lib\site-packages\matplotlib\animation.py", line 1732, in _init_draw
    self._draw_frame(next(self.new_frame_seq()))
  File "C:\Users\anaconda3\lib\site-packages\matplotlib\animation.py", line 1761, in _draw_frame
    key=lambda x: x.get_zorder())

TypeError: 'PathCollection' object is not iterable
EN

回答 2

Stack Overflow用户

发布于 2020-06-03 04:14:28

我观察到的是,如果我设置了blit=True,动画就不会工作,我会得到错误信息。如果没有该参数,动画将正常工作。有人能解释一下这个参数是做什么的吗?

票数 0
EN

Stack Overflow用户

发布于 2021-10-30 21:26:48

如果你在scat后面加一个逗号,我相信它应该是有效的:

代码语言:javascript
复制
def animate(i):
    sim.run()
    scat.set_offsets(sim.XY)  # update the data.  
    return scat,

如果为blit=True,则输出应为可迭代的:

查看此处:https://matplotlib.org/stable/api/_as_gen/matplotlib.animation.FuncAnimation.html

如果==为True,则func必须返回所有修改或创建的艺术家的可迭代对象。该信息由blitting算法用来确定图的哪些部分必须更新。

在scat后面加一个逗号,使其成为可迭代的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62156407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档