如何为圈子设置动画并与matplotlib对齐?

时间:2018-11-14 05:50:38

标签: animation matplotlib

我可以为六个圆圈设置动画,也可以为一条线设置动画。当我尝试同时给它们设置动画时,我无法弄清楚应该返回什么init()和animate()。对于六个圆,我“返回元组(大头针)”,对于直线,我“返回线”,。每个引脚是一个“类'matplotlib.patches.Circle'”,而该行是“类'matplotlib.lines.Line2D”。

当我尝试为圆和线设置动画时,我尝试了许多不同的return语句,但均未成功。以下是一些结果:

返回行,元组(引脚)为“元组”对象没有属性“ set_animated”

返回元组(引脚)+(行)GIVES只能将元组(不是“ Line2D”)连接到元组

返回元组(引脚)+元组(行)GIVES'Line2D'对象不可迭代

1 个答案:

答案 0 :(得分:1)

请注意,如果使用blitting,则仅需要从动画功能返回某些内容。

来自documentation

  

如果blit == True,func必须返回所有已修改或创建的艺术家的可迭代对象。划线算法使用此信息来确定必须更新图形的哪些部分。如果返回blit == False,则返回值未使用,在这种情况下可以省略。

因此,完全省略return可能是最简单的选择。

如果您需要/想要使用blittting,则需要返回可迭代的艺术家。这可以例如是一个元组或列表。不幸的是,目前尚不清楚问题中的pins是什么。

假设pins是一个列表

return pins + [line]

或者如果您希望将其列为列表,

return list(pins) + [line]

假设pins是一个元组,

return pins + (line,)

或者如果要使其为元组,

return tuple(pins) + (line,)