मैटप्लोटलिब एनिमेशन को टिंकर फ्रेम में एम्बेड करने के लिए, हम निम्नलिखित कदम उठा सकते हैं
कदम
-
फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें।
-
Tk . का एक शीर्ष स्तरीय विजेट बनाएं जो अधिकतर किसी एप्लिकेशन की मुख्य विंडो का प्रतिनिधित्व करता है
-
इस विजेट का शीर्षक सेट करें।
-
वर्तमान आकृति में एक कुल्हाड़ी जोड़ें और इसे वर्तमान कुल्हाड़ी बनाएं।
-
एक नया आंकड़ा बनाएं या मौजूदा आंकड़ा सक्रिय करें।
-
एक 'कुल्हाड़ी'जोड़ें एक सबप्लॉट व्यवस्था के हिस्से के रूप में चित्र के लिए।
-
linewidth=2 . के साथ एक डमी लाइन प्लॉट बनाएं ।
-
वह कैनवास बनाएं जिसमें चित्र प्रस्तुत करता है।
-
चित्र कैनवास बनाएं जिस पर काम करना है।
-
एक कीप्रेस बनाएं टिंकर सर्दी छोड़ने की घटना।
-
किसी फ़ंक्शन को बार-बार कॉल करके एनिमेशन बनाएं *चेतन* ।
-
आकृति प्रदर्शित करने के लिए, दिखाएँ () . का उपयोग करें विधि।
उदाहरण
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() आउटपुट
यह निम्नलिखित आउटपुट देगा -
