কম্পিউটার টিউটোরিয়াল

Matplotlib অ্যানিমেশন Tkinter ফ্রেমে এম্বেড করা


Matplotlib অ্যানিমেশন Tkinter ফ্রেমে এম্বেড করতে আমরা নিচের ধাপগুলো অনুসরণ করতে পারি।

ধাপসমূহ

  • ফিগার আকার সেট করুন এবং সাবপ্লটগুলির মধ্যবর্তী ও চারপাশের প্যাডিং সমন্বয় করুন।

  • Tk-এর একটি Toplevel উইজেট তৈরি করুন যা একটি অ্যাপ্লিকেশনের মূল উইন্ডোকে প্রতিনিধিত্ব করে।

  • এই উইজেটের শিরোনাম সেট করুন।

  • বর্তমান ফিগারে একটি অক্ষ যোগ করুন এবং এটি বর্তমান অক্ষ করে দিন।

  • একটি নতুন ফিগার তৈরি করুন বা বিদ্যমান ফিগার সক্রিয় করুন।

  • ফিগারে একটি 'ax' সাবপ্লট ব্যবস্থার অংশ হিসেবে যোগ করুন।

  • linewidth=2 দিয়ে একটি ডামি লাইন প্লট তৈরি করুন।

  • ফিগার রেন্ডার হতে ক্যানভাস তৈরি করুন।

  • অপারেশন করার জন্য ফিগার ক্যানভাস তৈরি করুন।

  • Tkinter উইন্ডো বন্ধ করার জন্য একটি keypress ইভেন্ট তৈরি করুন।

  • *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()

আউটপুট

এটি নিচের আউটপুট তৈরি করবে −

Matplotlib অ্যানিমেশন Tkinter ফ্রেমে এম্বেড করা


  1. Matplotlib-এ লেজেন্ড ফ্রেমের লাইন প্রস্থ নির্দিষ্ট করা

  2. Matplotlib-এ ২D হিস্টোগ্রাম কীভাবে প্লট করবেন?

  3. IPython Notebook-এ Matplotlib অ্যানিমেশন কাজ না করলে কী করবেন?

  4. Flask-এ Matplotlib দেখানোর পদ্ধতি