соединяя первую точку с последней точкой Matplotlib - PullRequest
0 голосов
/ 15 января 2020

Я хотел построить график с помощью библиотеки matplotlib для построения фреймов данных, считываемых из базы данных SQL без использования plt.pause, поэтому я создал класс для построения графиков и анимации данных, но проблема в том, что последняя точка связана с первой точка за линией

class graph:
def __init__(self,axes,max_entries=326):

    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([],[], "ro-")
    self.axes.set_autoscaley_on(True)
def add(self,x,y):

    self.axis_x.append(x)
    self.axis_y.append(y)
    self.x_axis,self.y_axis=zip(*sorted(zip(self.axis_x,self.axis_y),key=lambda axis_x:axis_x[0]))
    self.lineplot.set_data(self.x_axis,self.y_axis)

    #self.axes.set_xlim(self.axis_x[0],self.axis_x[-1]+1e-9)
    self.axes.relim();self.axes.autoscale_view()
def animate(self,figure,callback,interval=1000):
    def wrapper(frame_index):
        self.add(*callback(frame_index))
        self.axes.relim();self.axes.autoscale_view()
        return self.lineplot
    animation.FuncAnimation(figure,wrapper,interval=interval)

Обходной путь, который я попытался отсортировать в процессе поиска в stackoverflow и на других веб-сайтах. Я также не решил проблему. Любая помощь будет полезна, если потребуется весь код. это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...