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 फ़ाइल बनाएगा और इसे प्रोजेक्ट निर्देशिका में सहेजेगा।