Matplotlib में 3D प्लॉट_सर्फेस को चेतन करने के लिए, हम निम्नलिखित कदम उठा सकते हैं-
- मेष ग्रिड की संख्या के लिए चर प्रारंभ करें (N) , आवृत्ति प्रति सेकंड (एफपीएस) किसी फ़ंक्शन को कॉल करने के लिए, और संख्याओं को फ़्रेम करने के लिए (frn) ।
- बनाएं x , y और z वक्र के लिए सरणी।
- एक z-सरणी बनाने के लिए एक फ़ंक्शन बनाएं लैम्ब्डा फ़ंक्शन का उपयोग करना।
- किसी फ़ंक्शन को एनिमेशन क्लास में पास करने के लिए , एक उपयोगकर्ता-परिभाषित फ़ंक्शन बनाएं जो पिछले प्लॉट को हटाता है और x . का उपयोग करके सतह को प्लॉट करता है , y और z-सरणी।
- नया आंकड़ा बनाएं या मौजूदा आंकड़ा सक्रिय करें।
- सबप्लॉट्स () का उपयोग करके सबप्लॉट व्यवस्था जोड़ें विधि।
- Z-अक्ष की सीमा set_zlim() . का उपयोग करके सेट करें विधि।
- एनिमेशन क्लास को कॉल करें सतह की साजिश को चेतन करने के लिए।
- आंकड़ा प्रदर्शित करने के लिए, दिखाएं () . का उपयोग करें विधि।
उदाहरण
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()
आउटपुट