matplotlib可以用于创建同时递增和递减的实时更新的条形图动画吗?

时间:2019-04-24 20:30:00

标签: python matlab matplotlib

我正在一个项目中,该项目正在接受代表准确性预测的数据输入。伪想法是该程序将创建11个条形图,这些条形图将实时更新(值会增加和减小),并且需要将其导出为.mp4文件。期望输入为11个列表,其中包含要更新的值。我的问题是我真的不知道从哪里开始,因为我找不到带有动画的东西,而动画却无法同时增加和减少多个条形图。

我一直在寻找可能的方法,试图收集信息。看起来像它们的东西可以正常工作,但并不能不断地重绘图形,但是它只是在屏幕上抛出一个新图形,除非我能捕获它,否则它不是实时更新的。我在更新之前最初在这里找到的以下代码:Updating a matplotlib bar graph?,它没有被更改,但这是我能想到的最接近的代码,它使用的是正确的方法,但它不是真正的动画,并且没有保存

import matplotlib
matplotlib.use('TKAgg')
import matplotlib.pyplot as plt
import numpy as np
import time

def animated_barplot():
    # http://www.scipy.org/Cookbook/Matplotlib/Animations
    #mu, sigma = 1, 15
    N = 11
    x = np.random.rand(11)
    print(x)
    rects = plt.bar(range(N), x,  align = 'center')
    for i in range(50):
        x = np.random.rand(11)
        for rect, h in zip(rects, x):
            rect.set_height(h)
        fig.canvas.draw()
        time.sleep(512/22050)

fig = plt.figure()
win = fig.canvas.manager.window
win.after(100, animated_barplot)

plt.show()

就像我在顶部所说的那样,该代码的理想目标是能够实时更新多个增加或减少值的条形图,并将整个动画保存为视频格式。我不希望有人为此提供完整的代码,但是如果有人可以简单地向我指出有用的内容,那就太好了。或为我提供一种伪代码以表示可能的工作方法,这也将非常有帮助。

0 个答案:

没有答案