Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#$Id: matplotlibCanvas.py 91 2011-02-07 23:01:27Z sarkiss $ 

import os 

import wx 

import wx.aui 

import matplotlib as mpl 

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as Canvas 

from matplotlib.backends.backend_wxagg import NavigationToolbar2Wx as Toolbar 

from icons import chart_curvePNG 

class Plot(wx.Panel): 

    def __init__(self, parent, id = -1, dpi = None, **kwargs): 

        wx.Panel.__init__(self, parent, id=id, **kwargs) 

        self.figure = mpl.figure.Figure(dpi=dpi, figsize=(2,2)) 

        self.canvas = Canvas(self, -1, self.figure) 

        self.toolbar = Toolbar(self.canvas) 

        self.toolbar.Realize() 

 

        sizer = wx.BoxSizer(wx.VERTICAL) 

        sizer.Add(self.toolbar, 0 , wx.LEFT | wx.EXPAND) 

        sizer.Add(self.canvas,1,wx.EXPAND) 

        self.SetSizer(sizer) 

 

class PlotNotebook(wx.Panel): 

    def __init__(self, parent, id = -1): 

        wx.Panel.__init__(self, parent, id=id) 

        self.nb = wx.aui.AuiNotebook(self, style=wx.aui.AUI_NB_TOP | 

                                       wx.aui.AUI_NB_TAB_SPLIT | 

                                       wx.aui.AUI_NB_TAB_MOVE | 

                                       wx.aui.AUI_NB_TAB_FIXED_WIDTH | 

                                       wx.aui.AUI_NB_SCROLL_BUTTONS | 

                                       wx.aui.AUI_NB_WINDOWLIST_BUTTON| 

                                       wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB) 

        sizer = wx.BoxSizer() 

        sizer.Add(self.nb, 1, wx.EXPAND) 

        self.SetSizer(sizer) 

        self.frame = parent 

        self.frame.view.AddPage(self,'2D Plots', bitmap=chart_curvePNG) 

        page = self.add("Figure") 

        page.figure.add_subplot(111) 

        self.firstPlot = True 

 

    def add(self, name="plot"): 

       page = Plot(self.nb) 

       self.nb.AddPage(page, name, select=True) 

       return page