我有一个包含 8 个数字的字典,我想通过循环作为动画来更好地可视化



我有一本名为"fig_dict"的字典和一本名为"axes_dict"的相应词典。目前,如果我想绘制一个特定的图形,我可以调用fig_dict['key_of_interest'].show((。我还有一个标题为dict_keys的字典键列表(两者都相同(。

我想循环浏览所有键并像这样绘制它们:https://www.timera-energy.com/content/uploads/2014/11/Fwd-Curve-Animation.gif,其中每个图形闪烁一定时间并重复循环。

在我的脑海中,这看起来像:

for current_key in dict_keys:
    fig_dict[current_key].animate()

我能找到的关于这个主题的所有其他堆栈溢出问题都不涉及预制的数字,似乎不起作用。有没有简单的方法可以做到这一点?

这是行不通的,因为每个图形都是一个单独的窗口,可以位于屏幕上的不同位置。最好有一个图形并在每个动画循环中重绘轴(例如,使用plt.ion()的交互模式,暂停以重绘plt.pause(0.1)并使用这样的ax.cla()清除轴(。

如果您需要使用当前的格式,我建议您创建一系列图像,然后从这些文件制作视频/gif,例如

for i, current_key in enumerate(dict_keys):
    fig_dict[current_key].savefig("out{:05}.png".format(i))

然后制作视频或 GIF(例如 FFMPEG、GIFSICLE 等(,

ffmpeg -i out_%05d.png test.avi

由于字典的顺序未定义,因此可能需要小心。

最新更新