Revision: 6090 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6090&view=rev Author: jdh2358 Date: 2008-09-13 15:35:55 +0000 (Sat, 13 Sep 2008)
Log Message: ----------- updated the wx animation examples Added Paths: ----------- trunk/matplotlib/examples/animation/simple_idle_wx.py trunk/matplotlib/examples/animation/simple_timer_wx.py Removed Paths: ------------- trunk/matplotlib/examples/animation/dynamic_image_wxagg.py trunk/matplotlib/examples/animation/simple_anim_wx.py Deleted: trunk/matplotlib/examples/animation/dynamic_image_wxagg.py =================================================================== --- trunk/matplotlib/examples/animation/dynamic_image_wxagg.py 2008-09-13 14:28:09 UTC (rev 6089) +++ trunk/matplotlib/examples/animation/dynamic_image_wxagg.py 2008-09-13 15:35:55 UTC (rev 6090) @@ -1,100 +0,0 @@ -#!/usr/bin/env python -""" -Copyright (C) 2003-2004 Jeremy O'Donoghue and others - -License: This work is licensed under the PSF. A copy should be included -with this source code, and is also available at -http://www.python.org/psf/license.html - -""" -import sys, time, os, gc - -import matplotlib -matplotlib.use('WXAgg') - -from matplotlib import rcParams -import matplotlib.cm as cm - -from matplotlib.backends.backend_wxagg import Toolbar, FigureCanvasWxAgg - -from matplotlib.figure import Figure -import numpy as npy -import wx - - -TIMER_ID = wx.NewId() - -class PlotFigure(wx.Frame): - - def __init__(self): - wx.Frame.__init__(self, None, -1, "Test embedded wxFigure") - - self.fig = Figure((5,4), 75) - self.canvas = FigureCanvasWxAgg(self, -1, self.fig) - self.toolbar = Toolbar(self.canvas) - self.toolbar.Realize() - - # On Windows, default frame size behaviour is incorrect - # you don't need this under Linux - tw, th = self.toolbar.GetSizeTuple() - fw, fh = self.canvas.GetSizeTuple() - self.toolbar.SetSize(wx.Size(fw, th)) - - # Initialise the timer - wxPython requires this to be connected to - # the receiving event handler - self.t = wx.Timer(self, TIMER_ID) - self.t.Start(10) - - # Create a figure manager to manage things - - # Now put all into a sizer - sizer = wx.BoxSizer(wx.VERTICAL) - # This way of adding to sizer allows resizing - sizer.Add(self.canvas, 1, wx.LEFT|wx.TOP|wx.GROW) - # Best to allow the toolbar to resize! - sizer.Add(self.toolbar, 0, wx.GROW) - self.SetSizer(sizer) - self.Fit() - self.Bind(wx.EVT_TIMER, self.onTimer, id=TIMER_ID) - self.Bind(wx.EVT_CLOSE, self.onClose) - - def init_plot_data(self): - # jdh you can add a subplot directly from the fig rather than - # the fig manager - a = self.fig.add_subplot(111) - self.x = npy.arange(120.0)*2*npy.pi/120.0 - self.x.resize((100,120)) - self.y = npy.arange(100.0)*2*npy.pi/100.0 - self.y.resize((120,100)) - self.y = npy.transpose(self.y) - z = npy.sin(self.x) + npy.cos(self.y) - self.im = a.imshow( z, cmap=cm.jet)#, interpolation='nearest') - - def GetToolBar(self): - # You will need to override GetToolBar if you are using an - # unmanaged toolbar in your frame - return self.toolbar - - def onTimer(self, evt): - self.x += npy.pi/15 - self.y += npy.pi/20 - z = npy.sin(self.x) + npy.cos(self.y) - self.im.set_array(z) - self.canvas.draw() - #self.canvas.gui_repaint() # jdh wxagg_draw calls this already - - def onClose(self, evt): - self.t.Stop() - evt.Skip() - - def onEraseBackground(self, evt): - # this is supposed to prevent redraw flicker on some X servers... - pass - -if __name__ == '__main__': - app = wx.PySimpleApp() - frame = PlotFigure() - frame.init_plot_data() - - frame.Show() - app.MainLoop() Deleted: trunk/matplotlib/examples/animation/simple_anim_wx.py =================================================================== --- trunk/matplotlib/examples/animation/simple_anim_wx.py 2008-09-13 14:28:09 UTC (rev 6089) +++ trunk/matplotlib/examples/animation/simple_anim_wx.py 2008-09-13 15:35:55 UTC (rev 6090) @@ -1,29 +0,0 @@ -""" -A simple example of an animated plot using a wx backend -""" -import time -import numpy as np -import matplotlib -matplotlib.use('WXAgg') # do this before importing pylab - -import matplotlib.pyplot as plt - -fig = plt.figure() - -ax = fig.add_subplot(111) - -def animate(idleevent): - tstart = time.time() # for profiling - x = np.arange(0, 2*np.pi, 0.01) # x-array - line, = ax.plot(x, np.sin(x)) - - for i in np.arange(1,200): - line.set_ydata(np.sin(x+i/10.0)) # update the data - fig.canvas.draw() # redraw the canvas - print 'FPS:' , 200/(time.time()-tstart) - raise SystemExit - -# call the animation loop on idle -import wx -wx.EVT_IDLE(wx.GetApp(), animate) -plt.show() Added: trunk/matplotlib/examples/animation/simple_idle_wx.py =================================================================== --- trunk/matplotlib/examples/animation/simple_idle_wx.py (rev 0) +++ trunk/matplotlib/examples/animation/simple_idle_wx.py 2008-09-13 15:35:55 UTC (rev 6090) @@ -0,0 +1,29 @@ +""" +A simple example of an animated plot using a wx backend +""" +import time +import numpy as np +import matplotlib +matplotlib.use('WXAgg') # do this before importing pylab + +import matplotlib.pyplot as plt + +fig = plt.figure() + +ax = fig.add_subplot(111) +t = np.arange(0, 2*np.pi, 0.1) +line, = ax.plot(t, np.sin(t)) +dt = 0.05 + +def update_line(idleevent): + if update_line.i==200: + return False + print 'animate', update_line.i + line.set_ydata(np.sin(t+update_line.i/10.)) + fig.canvas.draw_idle() # redraw the canvas + update_line.i += 1 +update_line.i = 0 + +import wx +wx.EVT_IDLE(wx.GetApp(), update_line) +plt.show() Added: trunk/matplotlib/examples/animation/simple_timer_wx.py =================================================================== --- trunk/matplotlib/examples/animation/simple_timer_wx.py (rev 0) +++ trunk/matplotlib/examples/animation/simple_timer_wx.py 2008-09-13 15:35:55 UTC (rev 6090) @@ -0,0 +1,36 @@ +""" +A simple example of an animated plot using a wx backend +""" +import time +import numpy as np +import matplotlib +matplotlib.use('WXAgg') # do this before importing pylab + +import matplotlib.pyplot as plt + +fig = plt.figure() + +ax = fig.add_subplot(111) +t = np.arange(0, 2*np.pi, 0.1) +line, = ax.plot(t, np.sin(t)) +dt = 0.05 + + +def update_line(event): + if update_line.i==200: + return False + print 'update', update_line.i + line.set_ydata(np.sin(t+update_line.i/10.)) + fig.canvas.draw() # redraw the canvas + update_line.i += 1 +update_line.i = 0 + +import wx +id = wx.NewId() +actor = fig.canvas.manager.frame +timer = wx.Timer(actor, id=id) +timer.Start(100) +wx.EVT_TIMER(actor, id, update_line) +#actor.Bind(wx.EVT_TIMER, update_line, id=id) + +plt.show() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Matplotlib-checkins mailing list Matplotlib-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins