Python Forum

Full Version: connecting the first point to the last point Matplotlib
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I wanted to plot by using matplotlib library to plot data frames that read from database SQL without using plt.pause so I created a class to plot and animate the data but the problem is the last point is connected to the first point by a line
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([], [], "ro-")
        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):
        import matplotlib.animation as animation
        def wrapper(frame_index):
            self.add(*callback(frame_index))
            self.axes.relim(); self.axes.autoscale_view() # rescale the y-axis
            return self.lineplot
        animation.FuncAnimation(figure, wrapper, interval=interval)
The workaround that I tried to sort the data as I searched on StackOverflow and other websites also I didn't solve the problem any help would be appreciated if the whole code is required I would post it.