কম্পিউটার

কিভাবে Matplotlib এ 3D plot_surface অ্যানিমেট করবেন?


Matplotlib-এ 3D plot_surface অ্যানিমেট করতে, আমরা নিম্নলিখিত পদক্ষেপগুলি নিতে পারি−

  • মেশ গ্রিডের সংখ্যার জন্য ভেরিয়েবল শুরু করুন (N) , প্রতি সেকেন্ডে ফ্রিকোয়েন্সি (fps) একটি ফাংশন, এবং ফ্রেম নম্বর (frn) কল করতে .
  • x তৈরি করুন , y এবং z একটি বক্ররেখার জন্য অ্যারে।
  • একটি z-অ্যারে তৈরি করতে একটি ফাংশন তৈরি করুন ল্যাম্বডা ফাংশন ব্যবহার করে।
  • অ্যানিমেশন ক্লাসে একটি ফাংশন পাস করতে , একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন তৈরি করুন যা পূর্ববর্তী প্লটটি সরিয়ে দেয় এবং x ব্যবহার করে একটি পৃষ্ঠ প্লট করে , y এবং z-অ্যারে।
  • একটি নতুন চিত্র তৈরি করুন বা একটি বিদ্যমান চিত্র সক্রিয় করুন৷
  • সাবপ্লট() ব্যবহার করে একটি সাবপ্লট ব্যবস্থা যোগ করুন পদ্ধতি।
  • set_zlim() ব্যবহার করে Z-অক্ষের সীমা সেট করুন পদ্ধতি।
  • অ্যানিমেশন ক্লাসে কল করুন সারফেস প্লটকে অ্যানিমেট করতে।
  • চিত্রটি প্রদর্শন করতে, শো() ব্যবহার করুন পদ্ধতি।

উদাহরণ

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

plt.rcParams["figure.figsize"] = [7.50, 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)

ax.axis('off')

plt.show()

আউটপুট

কিভাবে Matplotlib এ 3D plot_surface অ্যানিমেট করবেন?


  1. পাইথনে একটি কনট্যুর প্লট অ্যানিমেট করতে matplotlib.animate কীভাবে ব্যবহার করবেন?

  2. Matplotlib-এ একটি ঘূর্ণায়মান 3D গ্রাফ অ্যানিমেট করুন

  3. কিভাবে Matplotlib একটি pcolormesh অ্যানিমেট করতে?

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