animation in thread

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

animation in thread

arash
I am new to matplotlib and I am trying to get started with animation library. There is an example here for a simple strip chart: https://matplotlib.org/examples/animation/strip_chart_demo.html I tried to use this example in a thread. I created a simple threading.Thread class, and in it's run() method, called: ani = animation.FuncAnimation(fig, scope.update, emitter, interval=10,True) plt.show() here is class: class graph(threading.Thread): def __init__(self, feeder): threading.Thread.__init__(self) self.fig, self.ax = plt.subplots() self.scope = Scope(self.ax) self.feeder=feeder self.running=True def run(self): while self.running: ani = animation.FuncAnimation(self.fig, self.scope.update, self.feeder.emit_ch1(), interval=1, blit=True) plt.show() but when I start this thread, it never shows the windows. Isn't this right usage?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: animation in thread

arash
(Resending to correct formatting)

I am new to matplotlib and I am trying to get started with animation library.
There is an example here for a simple strip chart:

https://matplotlib.org/examples/animation/strip_chart_demo.html

I tried to use this example in a thread. I created a simple threading.Thread class, and in it's run() method, called:

ani = animation.FuncAnimation(fig, scope.update, emitter, interval=10,True)
plt.show()


here is class:


import matplotlib.pyplot as plt
import matplotlib.animation as animation

class graph(threading.Thread):

    def __init__(self, feeder):
        threading.Thread.__init__(self)
        self.fig, self.ax = plt.subplots()
        self.scope = Scope(self.ax)
        self.feeder=feeder
        self.running=True

    def run(self):
        while self.running:
            ani = animation.FuncAnimation(self.fig, self.scope.update, self.feeder.emit_ch1(), interval=1, blit=True)
            plt.show()
           
but when I start this thread, it never shows the windows. Isn't this right usage?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: animation in thread

tcaswell
GUI frameworks tend to require they be on the main thread.  Which backend / gui framework are you using here?

In general you will have to arrange things so that the main thread owns the GUI windows + plotting and the child threads own the computation.  

Tom

On Sat, Aug 5, 2017 at 12:37 PM arash <[hidden email]> wrote:
(Resending to correct formatting)

I am new to matplotlib and I am trying to get started with animation
library.
There is an example here for a simple strip chart:

https://matplotlib.org/examples/animation/strip_chart_demo.html

I tried to use this example in a thread. I created a simple
*threading.Thread* class, and in it's *run()* method, called:

*ani = animation.FuncAnimation(fig, scope.update, emitter, interval=10,True)
plt.show()*

here is class:

*
import matplotlib.pyplot as plt
import matplotlib.animation as animation

class graph(threading.Thread):

    def __init__(self, feeder):
        threading.Thread.__init__(self)
        self.fig, self.ax = plt.subplots()
        self.scope = Scope(self.ax)
        self.feeder=feeder
        self.running=True

    def run(self):
        while self.running:
            ani = animation.FuncAnimation(self.fig, self.scope.update,
self.feeder.emit_ch1(), interval=1, blit=True)
            plt.show()
*
but when I start this thread, it never shows the windows. Isn't this right
usage?



--
View this message in context: http://matplotlib.1069221.n5.nabble.com/animation-in-thread-tp48055p48056.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users

_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: animation in thread

arash
main thread is owning the GUI. My Python installation runs Tkinter version : 8.5 and this happens with Tkinter. I ran the same code on another machine which used another GUI framework(not sure what was it) and it went well. So I guess something is wrong with Tkinter.

On Sat, Aug 5, 2017 at 4:31 PM, Thomas Caswell <[hidden email]> wrote:
GUI frameworks tend to require they be on the main thread.  Which backend / gui framework are you using here?

In general you will have to arrange things so that the main thread owns the GUI windows + plotting and the child threads own the computation.  

Tom

On Sat, Aug 5, 2017 at 12:37 PM arash <[hidden email]> wrote:
(Resending to correct formatting)

I am new to matplotlib and I am trying to get started with animation
library.
There is an example here for a simple strip chart:

https://matplotlib.org/examples/animation/strip_chart_demo.html

I tried to use this example in a thread. I created a simple
*threading.Thread* class, and in it's *run()* method, called:

*ani = animation.FuncAnimation(fig, scope.update, emitter, interval=10,True)
plt.show()*

here is class:

*
import matplotlib.pyplot as plt
import matplotlib.animation as animation

class graph(threading.Thread):

    def __init__(self, feeder):
        threading.Thread.__init__(self)
        self.fig, self.ax = plt.subplots()
        self.scope = Scope(self.ax)
        self.feeder=feeder
        self.running=True

    def run(self):
        while self.running:
            ani = animation.FuncAnimation(self.fig, self.scope.update,
self.feeder.emit_ch1(), interval=1, blit=True)
            plt.show()
*
but when I start this thread, it never shows the windows. Isn't this right
usage?



--
View this message in context: http://matplotlib.1069221.n5.nabble.com/animation-in-thread-tp48055p48056.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users


_______________________________________________
Matplotlib-users mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/matplotlib-users
Loading...