Skip to content

Instantly share code, notes, and snippets.

@deeuu
Last active May 28, 2019 12:14
Show Gist options
  • Select an option

  • Save deeuu/5443e0e39c8a2439eccd14f7d87aeebf to your computer and use it in GitHub Desktop.

Select an option

Save deeuu/5443e0e39c8a2439eccd14f7d87aeebf to your computer and use it in GitHub Desktop.

Revisions

  1. deeuu revised this gist May 28, 2019. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions tkplotlib.py
    Original file line number Diff line number Diff line change
    @@ -39,6 +39,7 @@ def new_fig(self):
    data = [[random.gauss(1, 1) for _ in range(size)] for _ in range(size)]
    ax = self.fig.add_subplot(111)
    ax.imshow(data)
    self.fig.canvas.draw()

    def quit(self):
    self.root.quit()
  2. deeuu created this gist May 28, 2019.
    52 changes: 52 additions & 0 deletions tkplotlib.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,52 @@
    import time
    import random
    import tkinter as tk
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
    from matplotlib.figure import Figure

    class Window():
    def __init__(self, root):

    self.root = root

    self.root.protocol("WM_DELETE_WINDOW", self.quit)

    self.frame = tk.Frame(self.root)

    self.frame.pack(expand=True)

    button = tk.Button(master=self.frame, command=self.new_fig)
    button.pack(side='bottom')

    self.fig = None

    self.new_fig()


    def new_fig(self):

    if self.fig:
    self.fig.clear()
    else:
    self.fig = Figure()

    canvas = FigureCanvasTkAgg(self.fig, master=self.frame)
    self.widget = canvas.get_tk_widget()
    self.widget.pack(side="top", fill='both', expand=True)

    size = 10000

    data = [[random.gauss(1, 1) for _ in range(size)] for _ in range(size)]
    ax = self.fig.add_subplot(111)
    ax.imshow(data)

    def quit(self):
    self.root.quit()
    self.root.destroy()


    if __name__ == '__main__':

    root = tk.Tk()
    w = Window(root)
    root.mainloop()