python matplotlib实时数据打印问题

vecaoik1  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(209)

我试着写一个类,它会得到一些值,然后它会绘制出来。图形将是连续线。然而,问题是,由于某种原因,图形值总是落后于1个条目。

from matplotlib import pyplot as plt

class RealTimeGraph():
    x = []
    y = []

    def __init__(self, y_range = (), x_range = ()):
        self.index = self.index_gen()

        if (y_range):
            plt.ylim(*y_range)
        if (x_range):
            plt.xlim(*x_range)

    def index_gen(self, start = 0):
        while True:
            yield start
            start += 1

    def add_value(self, value):
        self.x.append(next(self.index))
        self.y.append(value)

        plt.cla()
        plt.plot(self.x, self.y)
        plt.pause(0.005)

if __name__ == '__main__':
    import random as r
    import time

    graph = RealTimeGraph(y_range = (0, 5))

    for i in range(10):
        graph.add_value(r.randint(0, 5))
        time.sleep(0.5)

sleep函数是一个模拟程序,我想在其中使用这个类。是什么导致了这个问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题