Hi, folks, I will be posting this question to both matplotlib-users and wxpython-users. Apologies to those of you who have to endure my ramblings two times in a row!
Using this example by John Bender, http://www.scipy.org/Matplotlib_figure_in_a_wx_panel I recently constructed a working, animated matplotlib graph in a wxPython frame. A sample output is here: http://www.flickr.com/photos/15579975@N00/6145518550 In that example, the text block is in wxPython, and the color bar for the graph's Z scale is a bitmap object which is again handled by wx. Only the live graph is rendered by matplotlib. Once I accomplished this, I attempted a more complicated, multiple-subplot display, this time with the text boxes handled my matplotlib rather than wx. I also tried removing parts of Mr. Bender's code that I thought that I would not need. Specifically, I've disabled resizing of my matplotlib panel. But when I removed the code associated with sizing, I discovered that my animation disappeared. The first frame would draw, then nothing. Digging deeper, I learned that redrawing is SOMEHOW accomplished in the PlotPanel._SetSize method. _SetSize is called when there's a wx.IDLE message. In _SetSize, you have to call PlotPanel.SetSize (note, no underscore this time) and FigureCanvasWxAgg.SetSize on EVERY cycle to make animation work. The matplotlib figure.set_size method needs only to be called the first time -- at least, in my case, where I've disabled resizing. I haven't tested a resizable window. Here are my questions. 1) I do not recall seeing this kind of behavior in wxPython before. Why does wxPython treat matplotlib objects differently? 2) How exactly is sizing making the redrawing happen? Is this a good method to use? The indirect nature of this redrawing-by-sizing approach sent me on a long and pointless hunt for bugs in my own code. Finally, how can I determine how MUCH redrawing is taking place on my matplotlib canvas? I am trying to implement eight image plots simultaneously, with some overlaid contours, and some live text, too. But sometimes I only have to update four of the eight plots, or just the text. Does matplotlib know which parts of its image are "dirty" and confine its updates appropriately? Many thanks for your insights! ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users