|
From: <jd...@us...> - 2008-09-13 15:35:59
|
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.
|