首页 > 解决方案 > 如何在 Python 中将多个生成器传递给 FunAnimation?

问题描述

我想使用 FuncAnimation 从两个或多个生成器函数创建两个或多个子图。我从单个生成器函数创建绘图的代码如下所示:

from data import Data

gen = someGeneratorFunction(dataIn)

def animate(frame):
    axs.cla()
    axs.set_xticks([])
    axs.set_yticks([])
    axs.bar(list(range(Data.data_count)),  # X
            [d.value for d in frame],  # data
            1,  # width,
            color=[d.colour for d in frame],  # colour
            ).get_children()
anim = FuncAnimation(fig, animate, frames=gen, interval=1 ,repeat=False)
plt.show()

我想要做的看起来像:

gen1 = someGeneratorFunction1(dataIn)
gen2 = someGeneratorFunction2(dataIn)

然后在将它们传递给 FuncAnimation 之前,我会以某种方式需要组合生成器 gen1 和 gen2(它们的长度可能不同)。我试过使用

gen = zip(gen1, gen2)

但后来我实际上将一个 zip 对象而不是生成器对象传递给 FuncAnimation。

有什么方法可以组合生成器吗?谢谢你的帮助。

标签: pythongeneratorsubplot

解决方案


推荐阅读