फंकएनीमेशन का उपयोग करने के तरीके के स्पष्टीकरण पर दस्तावेज़ीकरण थोड़ा हल्का है। हालांकि, गैलरी में उदाहरण हैं। और ब्लॉग ट्यूटोरियल, जैसे Jake Vanderplas और सैम डोलन की PDF ।
जेक वेंडरप्लास के ट्यूटोरियल का यह उदाहरण शायद मैटप्लोटलिब एनीमेशन का "हैलो वर्ल्ड" है:
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def init():
return [line]
def animate(i, ax, line):
x = np.linspace(0, 2*np.pi, N) + i/(N*2)
ax.set_xlim(x.min(), x.max())
line.set_data(x, np.sin(x))
return [line]
N = 100
fig, ax = plt.subplots()
line, = ax.plot([], [])
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
ani = animation.FuncAnimation(
fig, animate, init_func=init, interval=0, frames=int(4*np.pi*N),
repeat=True, blit=True, fargs=[ax, line])
plt.show()
विभिन्न मूल्यों या कोड की पंक्तियों को बदलें और देखें कि क्या होता है। देखें कि क्या होता है यदि आप return [line]
. बदलते हैं किसी और चीज को। यदि आप इन उदाहरणों का अध्ययन करते हैं और खेलते हैं, तो आप सीख सकते हैं कि टुकड़े एक साथ कैसे फिट होते हैं।
एक बार जब आप इस उदाहरण को समझ लेते हैं, तो आप अपने लक्ष्य के अनुरूप इसे संशोधित करने में सक्षम होंगे।
यदि आपको कोई समस्या है, तो अपना कोड पोस्ट करें और बताएं कि आपको कौन सा त्रुटि संदेश या दुर्व्यवहार दिखाई दे रहा है।
कुछ सुझाव:
-
चूंकि एनिमेशन के लिए
line.set_data
को कॉल करना आवश्यक है , मुझे नहीं लगता कि आप पंडों केdf.plot()
. का उपयोग कर सकते हैं . वास्तव में, मुझे यकीन नहीं है कि पांडस डेटाफ्रेम यहां उपयोगी है या नहीं। आप सूचियों या NumPy सरणियों में डेटा को चूसने और उन्हेंline.set
पर भेजने से बेहतर हो सकते हैं ऊपर के रूप में, पंडों को शामिल किए बिना। -
डेटाबेस से कनेक्शन खोलना एक बार किया जाना चाहिए।
animate
कई बार कॉल किया जाता है। इसलिएconn
. को परिभाषित करना बेहतर है औरc
औरquery
-- कुछ भी जो प्रत्येक कॉल के साथanimate
. में नहीं बदलता है --animate
. के बाहर , और उन्हेंanimate
. के तर्क के रूप में वापस पास करेंfargs
. के माध्यम से पैरामीटर।