import tkinter as tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure from ui.plotters.plotter import Plotter class PlotFrame(tk.Frame): def __init__(self, parent, width=None, height=None): super().__init__(parent, width=width, height=height) if width is not None or height is not None: self.pack_propagate(False) self.figure = self.create_plot_figure() self.plotter: Plotter = None def create_plot_figure(self): figure = Figure(layout="compressed", facecolor=(0,0,0)) # Create a matplotlib canvas to display the plot canvas = FigureCanvasTkAgg(figure, self) canvas.draw() (canvas.get_tk_widget() .pack(fill=tk.BOTH, expand=False, padx=0, pady=0, ipadx=0, ipady=0)) return figure def update_data(self, data): self.plotter.update_plot(data)