2 if not isinstance(axes, list):
7 class CanvasFrame(wx.Frame):
9 wx.Frame.__init__(self,
None, -1,
'CanvasFrame')
11 from matplotlib.backends.backend_wxagg
import FigureCanvasWxAgg
13 self._statusBar = wx.StatusBar(self)
14 self._statusBar.SetFieldsCount(1)
15 self.SetStatusBar(self._statusBar)
17 self._mainSizer = wx.BoxSizer(wx.VERTICAL)
20 self._canvasSizer = wx.GridSizer(1)
22 canvas = FigureCanvasWxAgg(self, -1, ax.get_figure())
23 canvas.mpl_connect(
'motion_notify_event', self._updateStatusBar)
25 sizer = wx.BoxSizer(wx.VERTICAL)
26 self._addToolbar(canvas, sizer)
27 sizer.Add(canvas, 1, wx.LEFT | wx.TOP | wx.EXPAND)
29 self._canvases.append(canvas)
30 self._canvasSizer.Add(sizer, 1, wx.LEFT | wx.TOP | wx.EXPAND)
33 self._mainSizer.Add(self._canvasSizer, 1, wx.LEFT | wx.TOP | wx.EXPAND)
34 self.SetSizer(self._mainSizer)
39 def _updateStatusBar(self, event):
41 Updates the status bar after an event happened.
43 @param[in] event The event to react to.
47 x, y = event.xdata, event.ydata
48 self._statusBar.SetStatusText(
'x = ' + str(x) +
', y = ' + str(y))
50 def _addToolbar(self, canvas, sizer):
51 from matplotlib.backends.backend_wx
import NavigationToolbar2Wx
52 toolbar = NavigationToolbar2Wx(canvas)
54 sizer.Add(toolbar, 0, wx.LEFT | wx.TOP | wx.EXPAND)