I guess I should be a little more specific. The part I'm
> having trouble with is the dynamic update. As a step along
> the way, I've got a gui with a button that just replots some
> data slightly altered from the original.
> If I use FigureCanvasTkAgg.show (schematically speaking) it
> will replot, but just once. That is, my button's callback
> routine contains a loop that tries to change the data (via
> set_ydata followed by ....show()) several times in a row.
> If I click the button, the data updates, but only once. I
> click it again, it the data updates once. I remove the
> loop, the data updates once. This strikes me as odd. How
> should the graphics window know or care if I'm in a python
> loop or not?
99% of the time, should only call show once per script -
http://matplotlib.sourceforge.net/faq.html#SHOW. If you want to
update the plot after changing some data, you should draw
canvas.draw(), as in examples/dynamic_demo.py. If you are still
having troubles after trying this, send me an attached script and I'll
take a look.
> I'm thinking that a well-placed call to
> canvas.get_tk_widget.update_idletasks() should do the job,
> but that hasn't worked for me either.
> Aside: having played with anim.py I'm concerned about speed.
> It seems that the speed of anim.py is limited by my system,
> not by the call to gtk.timeout_add(). I might be back
> asking about a solution that runs faster ... perhaps a lower
> level solution. (Pmw.Blt works fast enough.) Hmm... I just
> tried anim.py again, and it won't run. I've just upgraded
> to 0.54. Odd ... it opens a Tk window. I'll try that again
> later after I reboot. I'm on WinXP.
I am also interested in improving performance here. My goal is to
extend agg canvas so that portions of the canvas can be updated, eg a
vertical stip, to support things like strip charts. We have a project
at the hospital that I'm working on where we'd like to write a simple
AD data collection framework using matplotlib for the display, so I've
been mulling over the kinds of changes that need to be made. Do you
know now what kinds of updates you need to make? Eg, do you have
lines and you know you only need to update the screen for xlim between
points a and b?
> Comment: I don't have a handle at all on how the graphics
> system is organized. For example, what is a figure manager?
> When do I use it? I don't seem to need it, but there it is,
> and some of the examples use it. Looking through the
> docstrings I find myself going in circles. Maybe I'm
> digging too deeply for my own good. Maybe you developer
> types might add to your to-do list a description of the
> stucture of the graphics system.
It's absolutely a need and it's on my mental list of things to do.
There have been so many other areas that have required work and I
haven't made the time to generate adequate documentation. For the
near term I'd like to concentrate on getting all the install problems
ironed out and getting some documentation going.
> btw, for every task other than animation, matplotlib is the
> bomb. great job.