Python文件生成绘图点 - RuntimeError

时间:2017-06-19 12:14:13

标签: python matplotlib plot

更新:

我想绘制从Random_Generation_List.py中随机生成的实时y值。我导入了python文件并将它们放在同一个文件夹中。这些点仅被打印并且在图表上仅显示垂直线。如何解决此问题以使点图实时绘制到图表上?像一个点每0.001?

Random_Generation_List:

import random
import threading


def main():
    for count in range(12000):
        y = random.randint(0,1000)
        print(y)

def getvalues():
    return [random.randint(0,1000) for count in range(12000)]

def coordinate():
    threading.Timer(0.0001, coordinate).start ()
coordinate()

main()

Real_Time_Graph

import time
from collections import deque
from matplotlib import pyplot as plt
from matplotlib import style
import Random_Generation_List

start = time.time()

class RealtimePlot:
    def __init__(self, axes, max_entries = 100):
        self.axis_x = deque(maxlen=max_entries)
        self.axis_y = deque(maxlen=max_entries)
        self.axes = axes
        self.max_entries = max_entries
        self.lineplot, = axes.plot([], [], "g-")
        self.axes.set_autoscaley_on(True)

    def add(self, x, y):
        self.axis_x.append(x)
        self.axis_y.append(y)
        self.lineplot.set_data(self.axis_x, self.axis_y)
        self.axes.set_xlim(self.axis_x[0], self.axis_x[-1] + 1e-15)
        self.axes.relim(); self.axes.autoscale_view() # rescale the y-axis

    def animate(self, figure, callback, interval = 50):
        def wrapper(frame_index):
            self.add(*callback(frame_index))
            self.axes.relim(); self.axes.autoscale_view() # rescale the y-axis
            return self.lineplot

def main():

    style.use('dark_background')

    fig, axes = plt.subplots()
    display = RealtimePlot(axes)
    axes.set_xlabel("Seconds")
    axes.set_ylabel("Amplitude")
    values = Random_Generation_List.getvalues()
    print(values)

    while True:
        display.add(time.time() - start, values)
        plt.pause(0.001)

    display.animate(fig, lambda frame_index: (time.time() - start, values))
    plt.show()

if __name__ == "__main__": main()

错误消息:

  

引发RuntimeError(' xdata和ydata的长度必须相同')   RuntimeError:xdata和ydata的长度必须相同

0 个答案:

没有答案