Matplotlib实时图形不会通过代码更新

时间:2019-09-01 13:07:42

标签: python matplotlib

我正在尝试使用this的帮助来创建类似于https://pythonprogramming.net/live-graphs-matplotlib-tutorial/的实时更新图形。我已经创建了一个更新图,即。每当我手动写入“ data.txt”时,图形都会更改。最后的while循环也成功写入data.txt,每秒保存一次。但是,该图不会更新。

我觉得我从根本上误解了文件读/写的工作原理,但是如果我能够手动更新文件,为什么底部的while循环不能这样做?

编辑:从那以后,我通过将文字放在另一个文件上来使其工作。但是,我仍然想知道为什么这种方法不正确。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import time

iterations = 10
z = 0.7
k = 3
def function():
    global z, k
    z = k * z * (1-z)

figure = plt.figure()
graph = figure.add_subplot(1, 1, 1)
def animate(i):
    data = open('data.txt', 'r').read()
    lines = data.split('\n')
    xs = []
    ys = []
    for line in lines:
        if len(line) > 1:
            x, y = line.split(',')
            xs.append(float(x))
            ys.append(float(y))
    graph.clear()
    graph.plot(xs, ys)
livegraph = animation.FuncAnimation(figure, animate, interval=10)
plt.show()

while k < 4:
    i = 0
    file = open('data.txt', 'w+')
    while i < iterations:
        function()
        file.write('%d,%f\n' % (i, z))
        i += 1
    file.close()
    time.sleep(1)
    k += 0.1

0 个答案:

没有答案