Jul-03-2020, 09:33 AM
Hello!
I have the following problem:
I cannot live plot in a different thread, the main window (plot window) is white with a rotating doughnut mouse pointer.
Thank you!
I have the following problem:
I cannot live plot in a different thread, the main window (plot window) is white with a rotating doughnut mouse pointer.
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg, NavigationToolbar2Tk)
import threading
from time import sleep
from tkinter import *
import random
class PlotData:
def __init__(self, master):
self.master = master
master.title("PlotData")
master.geometry("600x600")
self.figure = Figure(facecolor='white',dpi = 95)
self.axes = self.figure.add_subplot(111,facecolor='white')
self.figure.subplots_adjust(left=0.08, right=0.95, top=0.96, bottom=0.1)
self.xi = []
self.yi = []
self.plot_data, = self.axes.plot(self.xi,self.yi,"-o",color="coral",markersize=4, markeredgecolor='olive')
self.canvas = FigureCanvasTkAgg(self.figure, master = self.master)
self.canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)
self.canvas.draw()
self.toolbar = NavigationToolbar2Tk(self.canvas, self.master)
self.toolbar.update()
threading.Thread(target=self.startPlot()).start()
def startPlot(self):
while 1:
self.xi.append(random.randint(0,10))
self.yi.append(random.randint(0,10))
self.plot_data.set_data(self.xi, self.yi)
sleep(1)
print(1)
root = Tk()
my_gui = PlotData(root)
root.mainloop()Is possible to run without blocking the window?Thank you!
