Reputation: 93
The graph supossed to be displayed in the canvas does not appear
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTk
import numpy as np
root = tk.Tk()
root.title("Graphique Matplotlib dans Tkinter")
root.geometry("750x500")
t = np.arange(0, 3, 0.01)
fig = plt.figure(figsize=(8, 8))
fig.add_subplot(111).plot(t, 2 * np.sin(2 * np.pi * t))
canvas = FigureCanvasTk(fig, master=root)
canvas.get_tk_widget().place(x=0,y=0)
button = tk.Button(root, text="Cliquez-moi !")
button.pack()
root.mainloop()
I display a canvas in a window, a button, but the graph stays invisible, despite it being created when I write plt.show() to test.
Upvotes: 0
Views: 48
Reputation: 93
I have that, but impossible to update the toolbar, it does not work on the new graphs created after clicking on the button
import random
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
root = tk.Tk()
canvas = None
toolbar = None
def cplot():
global canvas, toolbar
if canvas:
plt.close()
canvas.get_tk_widget().pack_forget()
xCord = [random.randint(0, 10) for i in range(5)]
yCord = [random.randint(0, 10) for i in range(5)]
fig, ax = plt.subplots()
plt.plot(xCord, yCord)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack()
if not toolbar:
toolbar = NavigationToolbar2Tk(canvas, root)
canvas.get_tk_widget().pack()
else:
toolbar.update()
bouton = tk.Button(root, text="Changer", command=cplot)
bouton.pack()
cplot()
root.mainloop()
Upvotes: 0