废话不多说,直接上代码:
import numpy as np
import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
root = tk.Tk()
fig = plt.figure()
plt.plot(np.random.rand(10))
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True)
root.mainloop()
其实主要是用来一个FirgureCanvasTkAgg类,将原来普通的plt.show()显示在了这个canvas组件里面,从canvas的创建>>调用canvas.draw()>>再到canvas控件的布局,这三个步骤一般是固定写法,当然布局方式的话可以自己调整:比如pack,place等。
效果如下所示: