Hello,
 
I have a problem when I try to refresh a plot I create.
 
The code is shown below:
 
What I want to do is that when the user initiates a key press the plot is 
updated.  (If you minimise and maximise then it is done, the problem is the 
repainting of the window.  I have tried searching on the web but cant find out 
how to do it (as well as trying lots of things with show() but alas no luck so 
far).
 
Any help much appreciated.
 
Thanks
 
 
 
import wximport osimport matplotlib
# either WX or WXAgg can be used here.# matplotlib.use('WX')# from 
matplotlib.backends.backend_wxagg import FigureCanvasWx as FigCanvas
matplotlib.use('WXAgg')from matplotlib.backends.backend_wxagg import 
FigureCanvasWxAgg as FigCanvas
from matplotlib.figure import Figureimport matplotlib.numerix as numpy
class PlotFrame(wx.Frame):
    start_msg  = """ Press Any Key to Initiate Plot - well thats the plan... 
"""    def __init__(self):        wx.Frame.__init__(self, None, -1, "Test 
Plotting")        self.fig   = Figure((5.0,3.0), 100)        self.canvas= 
FigCanvas(self, -1, self.fig)        self.axes  = 
self.fig.add_axes([0.15,0.15,0.75,0.75])
        sizer = wx.BoxSizer(wx.VERTICAL)        sizer.Add(self.canvas, 1, 
wx.LEFT|wx.TOP|wx.GROW)        sizer.Add(wx.StaticText(self,-1, 
self.start_msg), 0,                  wx.ALIGN_LEFT|wx.TOP)
        self.canvas.Bind(wx.EVT_KEY_DOWN, self.onKeyEvent)
        self.SetSizer(sizer)        self.Fit()        self.Build_Menus()
    def Build_Menus(self):        """ build menus """        MENU_EXIT  = 
wx.NewId()        MENU_SAVE  = wx.NewId()
        menuBar = wx.MenuBar()
        f0 = wx.Menu()        f0.Append(MENU_EXIT,   "E&xit", "Exit")        
menuBar.Append(f0,     "&File");
        self.SetMenuBar(menuBar)
        self.Bind(wx.EVT_MENU, self.onExit ,        id=MENU_EXIT)        def 
onKeyEvent(self,event=None):        """ capture , act upon keystroke events"""  
      print "I plot here"        self.Plot_Data()        print "but how do i 
get it to be drawn?"        self.Show()
    def onExit(self,event=None):        self.Destroy()
    def Plot_Data(self):        t = numpy.arange(0.0,5.0,0.01)        s = 
numpy.sin(2.0*numpy.pi*t)        c = numpy.cos(0.4*numpy.pi*t)        
self.axes.plot(t,s)        self.axes.plot(t,c)
if __name__ == '__main__':    app = wx.PySimpleApp()    fig = PlotFrame()    
fig.Show(True)    app.MainLoop()
 
 
 
_________________________________________________________________
Free games, great prizes - get gaming at Gamesbox. 
http://www.searchgamesbox.com
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to