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()
আউটপুট
