OpenMPCD
plotAxes.py
1 def plotAxes(axes):
2  if not isinstance(axes, list):
3  axes = [axes]
4 
5  import wx
6 
7  class CanvasFrame(wx.Frame):
8  def __init__(self):
9  wx.Frame.__init__(self, None, -1, 'CanvasFrame')
10 
11  from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
12 
13  self._statusBar = wx.StatusBar(self)
14  self._statusBar.SetFieldsCount(1)
15  self.SetStatusBar(self._statusBar)
16 
17  self._mainSizer = wx.BoxSizer(wx.VERTICAL)
18 
19  self._canvases = []
20  self._canvasSizer = wx.GridSizer(1)
21  for ax in axes:
22  canvas = FigureCanvasWxAgg(self, -1, ax.get_figure())
23  canvas.mpl_connect('motion_notify_event', self._updateStatusBar)
24 
25  sizer = wx.BoxSizer(wx.VERTICAL)
26  self._addToolbar(canvas, sizer)
27  sizer.Add(canvas, 1, wx.LEFT | wx.TOP | wx.EXPAND)
28 
29  self._canvases.append(canvas)
30  self._canvasSizer.Add(sizer, 1, wx.LEFT | wx.TOP | wx.EXPAND)
31 
32 
33  self._mainSizer.Add(self._canvasSizer, 1, wx.LEFT | wx.TOP | wx.EXPAND)
34  self.SetSizer(self._mainSizer)
35  self.Fit()
36 
37 
38 
39  def _updateStatusBar(self, event):
40  """
41  Updates the status bar after an event happened.
42 
43  @param[in] event The event to react to.
44  """
45 
46  if event.inaxes:
47  x, y = event.xdata, event.ydata
48  self._statusBar.SetStatusText('x = ' + str(x) + ', y = ' + str(y))
49 
50  def _addToolbar(self, canvas, sizer):
51  from matplotlib.backends.backend_wx import NavigationToolbar2Wx
52  toolbar = NavigationToolbar2Wx(canvas)
53  toolbar.Realize()
54  sizer.Add(toolbar, 0, wx.LEFT | wx.TOP | wx.EXPAND)
55  toolbar.update()
56 
57 
58  class App(wx.App):
59  def OnInit(self):
60  frame = CanvasFrame()
61  frame.Show(True)
62  return True
63 
64 
65  app = App(0)
66  app.MainLoop()
MPCDAnalysis.ParticleCollection.ParticleCollection.__init__
def __init__(self)
Definition: ParticleCollection.py:17