matplotlib.animation के लिए ffmpeg को सक्षम करने के लिए , हम निम्नलिखित कदम उठा सकते हैं -
-
फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें।
-
ffmpeg . सेट करें निर्देशिका।
-
figure() . का उपयोग करके एक नया आंकड़ा बनाएं या मौजूदा आंकड़ा सक्रिय करें विधि।
-
एक 'ax1' Add जोड़ें एक सबप्लॉट व्यवस्था के हिस्से के रूप में चित्र के लिए।
-
पहले से मौजूद कुल्हाड़ियों के आधार पर डिवाइडर को प्लॉट करें।
-
प्लॉट किए जाने के लिए यादृच्छिक डेटा बनाएं, डेटा को एक छवि के रूप में प्रदर्शित करने के लिए, अर्थात, एक 2D नियमित रेखापुंज पर।
-
ScalarMappable . के लिए एक कलरबार बनाएं उदाहरण, cb ।
-
शीर्षक को वर्तमान फ़्रेम के रूप में सेट करें।
-
रंगरूपों की सूची बनाएं।
-
किसी फंक्शन को बार-बार कॉल करके एनिमेशन बनाएं, चेतन करें। फ़ंक्शन नया यादृच्छिक डेटा बनाता है, फिर imshow() . का उपयोग करें डेटा को छवि के रूप में प्रदर्शित करने की विधि।
-
पाइप-आधारित ffmpeg का एक उदाहरण प्राप्त करें लेखक।
-
मौजूदा एनिमेटेड फिगर को सेव करें।
उदाहरण
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation from mpl_toolkits.axes_grid1 import make_axes_locatable plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True plt.rcParams['animation.ffmpeg_path'] = 'ffmpeg' fig = plt.figure() ax = fig.add_subplot(111) div = make_axes_locatable(ax) cax = div.append_axes('right', '5%', '5%') data = np.random.rand(5, 5) im = ax.imshow(data) cb = fig.colorbar(im, cax=cax) tx = ax.set_title('Frame 0') cmap = ["copper", 'RdBu_r', 'Oranges', 'cividis', 'hot', 'plasma'] def animate(i): cax.cla() data = np.random.rand(5, 5) im = ax.imshow(data, cmap=cmap[i%len(cmap)]) fig.colorbar(im, cax=cax) tx.set_text('Frame {0}'.format(i)) ani = animation.FuncAnimation(fig, animate, frames=10) FFwriter = animation.FFMpegWriter() ani.save('plot.mp4', writer=FFwriter)
आउटपुट
जब हम कोड निष्पादित करते हैं, तो यह 'plot.mp4' नाम से एक mp4 फ़ाइल बनाएगा और इसे प्रोजेक्ट निर्देशिका में सहेजेगा।