May-16-2022, 05:14 PM
Maybe this will get you started. I've not ever worked with matplotlib or numpy but, anyway, here's my attempt
import tkinter as tk import numpy as np from matplotlib.figure import Figure from matplotlib import cm from matplotlib.colors import ListedColormap from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg np.random.seed(2) def plot(var, window): num = list(np.random.randint(low=1, high=10, size=120)) nx, ny = 3, 4 reshaped = np.array(num).reshape(10, nx*ny) layer = reshaped[var-1:var, :] layer = layer.reshape(nx, ny) x, y = np.mgrid[slice(0, nx+1, 1), slice(0, ny+1, 1)] figure = Figure(figsize=(4, 4)) ax = figure.add_subplot(111) col_type = cm.get_cmap('rainbow', 256) newcolors = col_type(np.linspace(0, 1, 1000)) white = np.array([1, 1, 1, 1]) newcolors[:1, :] = white newcmap = ListedColormap(newcolors) c = ax.pcolormesh(x, y, layer, cmap=newcmap, edgecolor='lightgray', linewidth=0.003) ax.figure.colorbar(c) canvas = FigureCanvasTkAgg(figure, window) canvas.draw() canvas.get_tk_widget().pack() class Window: def __init__(self, parent): self.slidervar = tk.IntVar() self.slider = tk.Scale(parent, from_=1, to=10, orient='horizontal') self.slider['variable'] = self.slidervar self.slider.pack() self.button = tk.Button(parent) self.button['text'] = 'Open Window' self.button.pack() class TopWindow: def __init__(self): self.window = tk.Toplevel(None) self.window.geometry('+500+300') self.label = tk.Label(self.window) self.label.pack() class Controller: def __init__(self, window): self.window = window self.window.button['command'] = self.openwindow self.window.slider['command'] = self.update def openwindow(self): self.topwindow = TopWindow() plot(self.window.slidervar.get(), self.topwindow.window) def update(self, event): plot(self.window.slidervar.get(), self.topwindow.window) if __name__ == '__main__': root = tk.Tk() root.geometry('200x200+250+250') Controller(Window(root)) root.mainloop()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags