1 | import wx |
---|
2 | import wx.aui |
---|
3 | import matplotlib as mpl |
---|
4 | from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as Canvas |
---|
5 | from matplotlib.backends.backend_wxagg import NavigationToolbar2Wx as Toolbar |
---|
6 | |
---|
7 | class Plot(wx.Panel): |
---|
8 | def __init__(self, parent, id = -1, dpi = None, **kwargs): |
---|
9 | wx.Panel.__init__(self, parent, id=id, **kwargs) |
---|
10 | self.figure = mpl.figure.Figure(dpi=dpi, #figsize=(5,7) |
---|
11 | ) |
---|
12 | self.canvas = Canvas(self, -1, self.figure) |
---|
13 | self.toolbar = Toolbar(self.canvas) |
---|
14 | self.toolbar.Realize() |
---|
15 | |
---|
16 | sizer = wx.BoxSizer(wx.VERTICAL) |
---|
17 | sizer.Add(self.canvas,1,wx.EXPAND) |
---|
18 | sizer.Add(self.toolbar, 0 , wx.LEFT | wx.EXPAND) |
---|
19 | self.SetSizer(sizer) |
---|
20 | |
---|
21 | class PlotNotebook(wx.Panel): |
---|
22 | def __init__(self, id = -1): |
---|
23 | self.app = wx.PySimpleApp() |
---|
24 | self.frame = wx.Frame(None,-1,'Plotter', size=wx.Size(600,600)) |
---|
25 | wx.Panel.__init__(self, self.frame, id=id) |
---|
26 | self.nb = wx.aui.AuiNotebook(self) |
---|
27 | sizer = wx.BoxSizer() |
---|
28 | sizer.Add(self.nb, 1, wx.EXPAND) |
---|
29 | self.SetSizer(sizer) |
---|
30 | |
---|
31 | def Show(self): |
---|
32 | self.frame.Show() |
---|
33 | |
---|
34 | def StartEventLoop(self): |
---|
35 | self.Show() |
---|
36 | self.app.MainLoop() |
---|
37 | |
---|
38 | |
---|
39 | def add(self,name="plot"): |
---|
40 | page = Plot(self.nb) |
---|
41 | self.nb.AddPage(page,name) |
---|
42 | return page.figure |
---|