嵌入Wx2
如何在具有新工具栏的应用程序中使用wxagg的示例
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvasfrom matplotlib.backends.backend_wx import NavigationToolbar2Wx as NavigationToolbarfrom matplotlib.figure import Figureimport numpy as npimport wximport wx.lib.mixins.inspection as WITclass CanvasFrame(wx.Frame):def __init__(self):wx.Frame.__init__(self, None, -1,'CanvasFrame', size=(550, 350))self.figure = Figure()self.axes = self.figure.add_subplot(111)t = np.arange(0.0, 3.0, 0.01)s = np.sin(2 * np.pi * t)self.axes.plot(t, s)self.canvas = FigureCanvas(self, -1, self.figure)self.sizer = wx.BoxSizer(wx.VERTICAL)self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.EXPAND)self.SetSizer(self.sizer)self.Fit()self.add_toolbar() # comment this out for no toolbardef add_toolbar(self):self.toolbar = NavigationToolbar(self.canvas)self.toolbar.Realize()# By adding toolbar in sizer, we are able to put it at the bottom# of the frame - so appearance is closer to GTK version.self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)# update the axes menu on the toolbarself.toolbar.update()# alternatively you could use#class App(wx.App):class App(WIT.InspectableApp):def OnInit(self):'Create the main window and insert the custom frame'self.Init()frame = CanvasFrame()frame.Show(True)return Trueapp = App(0)app.MainLoop()
