⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamic_demo_wx.py

📁 非原创。很好的python例子
💻 PY
字号:
#!/usr/bin/env python"""Copyright (C) Jeremy O'Donoghue, 2003 License: This work is licensed under the PSF. A copy should be includedwith this source code, and is also available athttp://www.python.org/psf/license.htmlThis is a sample showing how to embed a matplotlib figure in a wxPanel,and update the contents whenever a timer event occurs. It is inspiredby the GTK script dynamic_demo.py, by John Hunter (should be supplied withthis file) but I have assumed that you may wish to embed a figure insideyour own arbitrary frame, which makes the code slightly more complicated.It goes without saying that you can update the display on any event, notjust a timer...Should you require a toolbar and navigation, inspire yourself fromembedding_in_wx.py, which provides these features.Modification History:$Log: dynamic_demo_wx.py,v $Revision 1.7  2005/06/15 20:24:56  jdh2358syncing for 82Revision 1.6  2004/10/26 18:08:13  astrawConverted to use new NavigationToolbar2 (from old Toolbar).Revision 1.5  2004/06/26 06:37:20  astrawTrivial bugfix to eliminate IndexErrorRevision 1.4  2004/05/03 12:12:26  jdh2358added bang header to examplesRevision 1.3  2004/03/08 22:17:20  jdh2358* Fixed embedding_in_wx and dynamic_demo_wx examples* Ported build to darwin* Tk:  removed default figman=None from nav toolbar since it needs the  figman  fixed close bug  small changes to aid darwin buildRevision 1.2  2004/02/26 20:22:58  jaytmillerAdded the "numerix" Numeric/numarray selector module enabling matplotlibto work with either numarray or Numeric.  See matplotlib.numerix.__doc__.Revision 1.1  2003/12/30 17:22:09  jodonoghueFirst version of dynamic_demo for backend_wx"""import matplotlibmatplotlib.use('WX')from matplotlib.backends.backend_wx import FigureCanvasWx,\     FigureManager, NavigationToolbar2Wxfrom matplotlib.figure import Figurefrom matplotlib.axes import Subplotimport matplotlib.numerix as numpyfrom wxPython.wx import *TIMER_ID = wxNewId()class PlotFigure(wxFrame):    def __init__(self):        wxFrame.__init__(self, None, -1, "Test embedded wxFigure")        self.fig = Figure((5,4), 75)        self.canvas = FigureCanvasWx(self, -1, self.fig)        self.toolbar = NavigationToolbar2Wx(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(wxSize(fw, th))        # Create a figure manager to manage things        self.figmgr = FigureManager(self.canvas, 1, self)        # Now put all into a sizer        sizer = wxBoxSizer(wxVERTICAL)        # This way of adding to sizer allows resizing        sizer.Add(self.canvas, 1, wxLEFT|wxTOP|wxGROW)        # Best to allow the toolbar to resize!        sizer.Add(self.toolbar, 0, wxGROW)        self.SetSizer(sizer)        self.Fit()        EVT_TIMER(self, TIMER_ID, self.onTimer)            def init_plot_data(self):        a = self.fig.add_subplot(111)        self.ind = numpy.arange(60)        tmp = []        for i in range(60):            tmp.append(numpy.sin((self.ind+i)*numpy.pi/15))        self.X = numpy.array(tmp)        self.lines = a.plot(self.X[:,0],'o')        self.count = 0    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.count += 1        if self.count >= 60: self.count = 0        self.lines[0].set_data(self.ind, self.X[:,self.count])        self.canvas.draw()        self.canvas.gui_repaint()        if __name__ == '__main__':    app = wxPySimpleApp()    frame = PlotFigure()    frame.init_plot_data()        # Initialise the timer - wxPython requires this to be connected to the    # receivicng event handler    t = wxTimer(frame, TIMER_ID)    t.Start(100)        frame.Show()    app.MainLoop()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -