我有一个8个数字的字典,我想通过循环播放动画来更好地想象

问题描述 投票:0回答:1

我有一本名为“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()

我可以在这个主题上找到的所有其他stackoverflow问题都不涉及预制数字,似乎不起作用。是否有捷径可寻?

python matplotlib
1个回答
0
投票

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

如果您需要使用当前格式,我建议您创建一系列图像,然后根据这些文件制作视频/ 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

因为词典的顺序是不确定的,所以可能需要一些小心。

© www.soinside.com 2019 - 2024. All rights reserved.