|
@@ -267,12 +267,38 @@ canvas.bind("<ButtonRelease-3>", release)
|
|
|
|
|
|
visual = Toplevel(root)
|
|
|
# TODO: https://pythonprogramming.net/how-to-embed-matplotlib-graph-tkinter-gui/
|
|
|
-f = Figure(figsize=(5,5), dpi=100)
|
|
|
-a = f.add_subplot(111)
|
|
|
-a.plot(range(5), [1, 43, 5, 3, 2])
|
|
|
|
|
|
-fcanvas = FigureCanvasTkAgg(f, visual)
|
|
|
-fcanvas.show()
|
|
|
-fcanvas.get_tk_widget().pack()
|
|
|
+probes = {}
|
|
|
+values = {}
|
|
|
+
|
|
|
+simulation = [(1, {"a": 1, "b": 2}), (2, {"a": 3}), (3, {"a": 4, "b": 6})]
|
|
|
+
|
|
|
+def update_graphs():
|
|
|
+ while simulation:
|
|
|
+ t, results = simulation.pop(0)
|
|
|
+ for k, v in results.items():
|
|
|
+ if k in probes:
|
|
|
+ fcanvas, a = probes[k]
|
|
|
+ else:
|
|
|
+ f = Figure(figsize=(5,5), dpi=100)
|
|
|
+ a = f.add_subplot(111)
|
|
|
+ a.plot([], [])
|
|
|
+
|
|
|
+ fcanvas = FigureCanvasTkAgg(f, visual)
|
|
|
+ fcanvas.show()
|
|
|
+ fcanvas.get_tk_widget().pack()
|
|
|
+
|
|
|
+ probes[k] = (fcanvas, a)
|
|
|
+ values[k] = ([], [])
|
|
|
+
|
|
|
+ values[k][0].append(t)
|
|
|
+ values[k][1].append(v)
|
|
|
+
|
|
|
+ a.clear()
|
|
|
+ a.plot(values[k][0], values[k][1])
|
|
|
+ fcanvas.draw()
|
|
|
+ root.after(50, update_graphs)
|
|
|
+
|
|
|
+root.after(50, update_graphs)
|
|
|
|
|
|
root.mainloop()
|