Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Matplotlib एनिमेशन को Tkinter फ्रेम में एम्बेड करें

Matplotlib एनिमेशन को Tkinter GUI एप्लिकेशन में एम्बेड करने के लिए FigureCanvasTkAgg और FuncAnimation का उपयोग करें।

चरण

  1. फिगर आकार सेट करें और पैडिंग समायोजित करें
  2. Tk का टॉपलेवल विजेट बनाएं (मुख्य विंडो)
  3. विंडो शीर्षक सेट करें
  4. वर्तमान फिगर में एक्सिस जोड़ें
  5. नया फिगर बनाएं या मौजूदा सक्रिय करें
  6. सबप्लॉट व्यवस्था के भाग के रूप में फिगर में 'ax' जोड़ें
  7. linewidth=2 के साथ डमी लाइन प्लॉट बनाएं
  8. कैनवास बनाएं जिस पर फिगर रेंडर होगा
  9. फिगर कैनवास बनाएं
  10. key_press इवेंट बनाएं Tkinter विंडो छोड़ने के लिए
  11. animate फंक्शन को बार-बार कॉल करके एनिमेशन बनाएं
  12. tkinter.mainloop() से GUI चलाएं

उदाहरण

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("Matplotlib एनिमेशन Tkinter में")

# फिगर और एक्सिस
fig = plt.Figure(dpi=100)
ax = fig.add_subplot(xlim=(0, 2), ylim=(-1, 1))
line, = ax.plot([], [], lw=2)

# Tkinter कैनवास
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()

आउटपुट

Tkinter विंडो में एनिमेटेड साइन वेव: लाइन बाएं से दाएं चलती हुई दिखाई देती है। नेविगेशन टूलबार (ज़ूम, पैन, सेव) और क्विट बटन शामिल हैं।

मुख्य घटक

घटकभूमिका
FigureCanvasTkAggMatplotlib फिगर को Tkinter विजेट में एम्बेड करता है
NavigationToolbar2Tkइंटरैक्टिव टूलबार (ज़ूम, पैन, सेव) जोड़ता है
FuncAnimationफंक्शन को बार-बार कॉल करके एनिमेशन बनाता है
blit=Trueकेवल बदले हुए भाग रीड्रॉ करके प्रदर्शन सुधारता है

नोट

plt.axes() और plt.Figure() का मिश्रण भ्रमित कर सकता है। बेहतर है fig, ax = plt.subplots() या पूर्ण ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण उपयोग करें।

  1. Matplotlib में 2D हिस्टोग्राम कैसे प्लॉट करें? Matplotlib में 2D हिस्टोग्राम कैसे प्लॉट करें?

    2D हिस्टोग्राम बनाने के लिए निम्नलिखित चरणों का पालन करें: चरण फिगर का आकार सेट करें और सबप्लॉट्स के बीच पैडिंग एडजस्ट करें। NumPy का उपयोग करके x और y डेटा पॉइंट्स बनाएं। एक फिगर और सबप्लॉट्स का सेट बनाएं। hist2d() मेथड का उपयोग करके x और y प्लॉट करें। प्लॉट का शीर्षक सेट करें। फिगर डिस्प्ले करने

  1. IPython नोटबुक में Matplotlib एनिमेशन काम नहीं कर रहा? IPython नोटबुक में Matplotlib एनिमेशन काम नहीं कर रहा?

    Matplotlib में प्लॉट एनिमेट करने के लिए निम्नलिखित चरणों का पालन करें: चरण फिगर का आकार सेट करें और सबप्लॉट्स के बीच पैडिंग एडजस्ट करें। 10x10 डायमेंशन का रैंडम डेटा बनाएं। subplots() मेथड का उपयोग करके फिगर और सबप्लॉट्स का सेट बनाएं। FuncAnimation() क्लास का उपयोग करके फंक्शन *func* को बार-बार कॉ

  1. Flask में Matplotlib कैसे दिखाएं? Flask में Matplotlib कैसे दिखाएं?

    Flask में प्लॉट दिखाने के लिए, हम निम्नलिखित चरण अपना सकते हैं: एक छोटा एप्लिकेशन बनाएं। Flask एप्लिकेशन चलाने के लिए, वर्तमान डायरेक्टरी पर जाएं। $ export FLASK_APP=file.py $ flask run ब्राउज़र खोलें, यूआरएल हिट करें: https://127.0.0.1:5000/print-plot/ फिगर प्लॉट करने के लिए, हम रैंडम