將 matplotlib 動畫嵌入到 tkinter 框架中
要將 matplotlib 動畫嵌入到 tkinter 框架中,我們可以採取以下步驟
步驟
設定圖形尺寸並調整子圖之間的邊距和周圍的邊距。
建立 Tk 的一個頂級視窗小部件,它主要表示應用程式的主視窗
設定此小部件的標題。
向當前圖形新增一個座標系並使其成為當前座標系。
建立一個新圖形或啟用一個現有的圖形。
將 'ax' 作為子圖排列的一部分新增到圖形中。
使用 linewidth=2 畫一個虛擬的線狀圖。
建立圖形呈現的畫布。
建立用於操作的圖形畫布。
建立一個 keypress 事件來退出 tkinter 冬天。
透過反覆呼叫函式 *animate* 來建立動畫。
要顯示圖形,使用 Show() 方法。
示例
import tkinter
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg, NavigationToolbar2Tk)
from matplotlib.backend_bases import key_press_handler
from matplotlib import pyplot as plt, animation
import numpy as np
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
root = tkinter.Tk()
root.wm_title("Embedding in Tk")
plt.axes(xlim=(0, 2), ylim=(-2, 2))
fig = plt.Figure(dpi=100)
ax = fig.add_subplot(xlim=(0, 2), ylim=(-1, 1))
line, = ax.plot([], [], lw=2)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
toolbar = NavigationToolbar2Tk(canvas, root, pack_toolbar=False)
toolbar.update()
canvas.mpl_connect(
"key_press_event", lambda event: print(f"you pressed {event.key}"))
canvas.mpl_connect("key_press_event", key_press_handler)
button = tkinter.Button(master=root, text="Quit", command=root.quit)
button.pack(side=tkinter.BOTTOM)
toolbar.pack(side=tkinter.BOTTOM, fill=tkinter.X)
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)
def init():
line.set_data([], [])
return line,
def animate(i):
x = np.linspace(0, 2, 1000)
y = np.sin(2 * np.pi * (x - 0.01 * i))
line.set_data(x, y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,frames=200, interval=20, blit=True)
tkinter.mainloop()輸出
它將產生以下輸出 -

廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP