hey u mentioned that thr r several other fns tht helps to plot the animated grapgh other then funcanimation could u please name some coz funcanimation attribute is not responding in my system
I'd like for one process to receive data from the serial port, and then push that data into a queue so that matplotlib can update the figure real-time! However, FuncAnimation is not automatically calling the update function I've specified. animation.FuncAnimation(plt.gcf(), func=self.animate_fig(), interval=100, blit=True, repeat=True) The figure opens, but do you see anything that is preventing the call to "animate_fig"? I don't see the periodic "Update" print statement! from time import time, sleep from multiprocessing import Queue as mpQueue import matplotlib.pyplot as plt import matplotlib.animation as animation global ani #### Must be assigned to a global variable class PlotClass: # Create STATIC LOCAL instances accessible across class functions fig = None ax = None line1 = None q = None x_list_vec = [] y1_list_vec = [] def __init__(self, qdata ): # Save handle to Queue self.q = qdata # this is the call to matplotlib that allows dynamic plotting plt.ion() # Setup Figure with 'size' number of elements self.fig = plt.figure(figsize=(13,6)) self.ax = self.fig.add_subplot(111) # Create a list variable to the animation self.line1, = self.ax.plot(self.x_list_vec, self.y1_list_vec, marker = 'o', label='y1', color='r') # show a starting plot plt.xticks(rotation=45, ha='right') plt.title('Title: Hello World') plt.subplots_adjust(bottom=0.30) plt.show() def animate_fig(self, frame_num , user_arg1, user_arg2): #
Thanks for the nice tutorial! One issue though: I tried the code and got an error message: RuntimeError: The animation function must return a sequence of Artist objects. I had to add "return line," to the end of the animate(frame) function - then it works. Why does this not produce an error in your code?.
Update: this seems to have do with the Matplotlib backend. If I run the code without 'return line.' in a Jupyter Notebook, it works, but if I run it in Spyder on my Anaconda Python installation (with qt backend) it runs only if 'return line.' is added. Does anybody know why?
@@michaelk4602 try the following setup in Spyder: Preferences/IPython-Console/Graphics and set the Backend to automatic (it should be on 'Inline' by default). Plots and animations should pop up in the interactive mode in a new window without explicitly calling 'plt.show()' or 'return line' then.
I am getting an error on the line video = anim.to_html5_video() Can we do it without converting it to HTML5, like a normal plot, I don't need to save it, I just need to run it and display
This is a certified hood classic.
I think you forgot mentioning about installing the necessary moviewriter (ffmpeg)
yes please can you tell me how to do so
i'm getting this as message
Requested MovieWriter (ffmpeg) not available
Amazing tutorial btw a lot of other tutorials just write code and expect you to understand but you actually explain!
very clear and concise, much better than other tutorials on the subject°
Yeahhhh I mean they just write code and be like: “and that is how to do it.* I want to understand not copy.
by far best, clear and fast tutorial I have seen this handled with on UA-cam... thank you
Thanks for the brief tutorial. Hope you live a good life :)
Thanks for that explanation, man! You're amazing
Hey! Thanks a lot for the amazing video. Can you please make a video on how to do this for 3d plots in matplotlib? It would really be helpful
Man! Great content! Thanks for the time invest in sharing knowledge with us!
Verry good video, i looked everywhere for a video explainig how to do animations on matplotlib but i didn't find any, you saved me
Very helpful, thanks!
Finally found a tutorial that works! Thanks a lot!
thanks man this is great
keep it up
I just wish someone would tell me how to make a animation of a straight line growing not a sine.
Subscribed.Great video.Keep making.
thank you, great video
hey u mentioned that thr r several other fns tht helps to plot the animated grapgh other then funcanimation could u please name some coz funcanimation attribute is not responding in my system
I'd like for one process to receive data from the serial port, and then push that data into a queue so that matplotlib can update the figure real-time!
However, FuncAnimation is not automatically calling the update function I've specified.
animation.FuncAnimation(plt.gcf(), func=self.animate_fig(), interval=100, blit=True, repeat=True)
The figure opens, but do you see anything that is preventing the call to "animate_fig"? I don't see the periodic "Update" print statement!
from time import time, sleep
from multiprocessing import Queue as mpQueue
import matplotlib.pyplot as plt
import matplotlib.animation as animation
global ani #### Must be assigned to a global variable
class PlotClass:
# Create STATIC LOCAL instances accessible across class functions
fig = None
ax = None
line1 = None
q = None
x_list_vec = []
y1_list_vec = []
def __init__(self, qdata ):
# Save handle to Queue
self.q = qdata
# this is the call to matplotlib that allows dynamic plotting
plt.ion()
# Setup Figure with 'size' number of elements
self.fig = plt.figure(figsize=(13,6))
self.ax = self.fig.add_subplot(111)
# Create a list variable to the animation
self.line1, = self.ax.plot(self.x_list_vec, self.y1_list_vec, marker = 'o', label='y1', color='r')
# show a starting plot
plt.xticks(rotation=45, ha='right')
plt.title('Title: Hello World')
plt.subplots_adjust(bottom=0.30)
plt.show()
def animate_fig(self, frame_num , user_arg1, user_arg2): #
my code not displaying in Jupyter Notebooks
Post relevant code in description or link to it so that we dont have to copy it manualy.
Thanks, great job man, will follow.
why this video has only 91 views
Thanks for the nice tutorial!
One issue though: I tried the code and got an error message:
RuntimeError: The animation function must return a sequence of Artist objects.
I had to add "return line," to the end of the animate(frame) function - then it works.
Why does this not produce an error in your code?.
Update: this seems to have do with the Matplotlib backend. If I run the code without 'return line.' in a Jupyter Notebook, it works, but if I run it in Spyder on my Anaconda Python installation (with qt backend) it runs only if 'return line.' is added. Does anybody know why?
@@michaelk4602 try the following setup in Spyder: Preferences/IPython-Console/Graphics and set the Backend to automatic (it should be on 'Inline' by default). Plots and animations should pop up in the interactive mode in a new window without explicitly calling 'plt.show()' or 'return line' then.
I am getting an error on the line
video = anim.to_html5_video()
Can we do it without converting it to HTML5, like a normal plot, I don't need to save it, I just need to run it and display
I am using VSCode
display command not working.