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

Matplotlib-এ ঘূর্ণনশীল ৩D গ্রাফ অ্যানিমেট করা


Matplotlib-এ একটি ঘূর্ণনশীল ৩D গ্রাফ তৈরি করতে, আমরা একটি ফাংশন বারবার কল করার জন্য Animation ক্লাস ব্যবহার করতে পারি।

ধাপসমূহ

  • মেশ গ্রিডের সংখ্যা, প্রতি সেকেন্ড ফাংশন কল করার ফ্রিকোয়েন্সি, ফ্রেম নম্বর 위한 ভেরিয়েবল ইনিশিয়ালাইজ করুন।

  • একটি কার্ভের জন্য x, y, এবং z অ্যারে তৈরি করুন।

  • ল্যাম্বডা ফাংশন ব্যবহার করে z অ্যারে তৈরির জন্য একটি ফাংশন বানান।

  • অ্যানিমেশন ক্লাসে ফাংশন পাস করার জন্য, আগের প্লট রিমুভ করে x, y, এবং zarray ব্যবহার করে সারফেস প্লট করার একটি ইউজার-ডিফাইনড ফাংশন তৈরি করুন।

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

  • subplots() মেথড ব্যবহার করে সাবপ্লট আয়োজন যোগ করুন।

  • set_zlim() মেথড ব্যবহার করে Z-অক্ষের লিমিট সেট করুন।

  • সারফেস প্লট অ্যানিমেট করতে animation ক্লাস কল করুন।

  • অ্যানিমেটেড প্লট প্রদর্শন করতে show() মেথড ব্যবহার করুন।

উদাহরণ

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 50
fps = 250
frn = 75
x = np.linspace(-4, 4, N + 1)
x, y = np.meshgrid(x, x)
zarray = np.zeros((N + 1, N + 1, frn))
f = lambda x, y, sig: 1 / np.sqrt(sig) * np.exp(-(x ** 2 + y ** 2) / sig ** 2)
for i in range(frn):
    zarray[:, :, i] = f(x, y, 1.5 + np.sin(i * 2 * np.pi / frn))
def change_plot(frame_number, zarray, plot):
    plot[0].remove()
    plot[0] = ax.plot_surface(x, y, zarray[:, :, frame_number], cmap="afmhot_r")
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plot = [ax.plot_surface(x, y, zarray[:, :, 0], color='0.75', rstride=1, cstride=1)]
ax.set_zlim(0, 1.1)
ani = animation.FuncAnimation(fig, change_plot, frn, fargs=(zarray, plot), interval=1000 / fps)
ani.save('526.gif')
plt.show()

আউটপুট

Matplotlib-এ ঘূর্ণনশীল ৩D গ্রাফ অ্যানিমেট করা

  1. Matplotlib-এ প্রতিটি সাবপ্লটের জন্য অক্ষ টেক্সট রোটেট করুন

  2. পাইথনে matplotlib.animate ব্যবহার করে কন্টুর প্লট অ্যানিমেট করার পদ্ধতি

  3. Matplotlib-এ pcolormesh অ্যানিমেট করার পদ্ধতি

  4. ম্যাটপ্লটলিবে লাইন প্লট অ্যানিমেট করা