示例#1
0
    class Frame(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, parent=None, title="Colourmap Selection")

            self.figure = Figure(dpi=80, figsize=(2, 2))
            self.canvas = Canvas(self, -1, self.figure)
            self.axes = self.figure.gca()
            x = y = numpy.linspace(-3, 3, 80)
            X, Y = numpy.meshgrid(x, y)
            V = numpy.sin(Y**2 + X**2)
            self.mapper = FigureImage(self.figure)
            im = self.axes.pcolor(x, y, V, shading='flat')
            try:
                cb = self.mapper.callbacksSM.connect('changed', ChangeCM(im))
            except AttributeError:  # Using 0.91 style
                self.mapper.add_observer(im)
            #self.figure.colorbar(self.mapper)

            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.canvas, 1, wx.EXPAND)
            self.SetSizer(sizer)

            self.canvas.Bind(wx.EVT_RIGHT_DOWN, self.OnContext)

        def OnContext(self, evt):
            popup = wx.Menu()
            item = popup.Append(wx.ID_ANY, '&Grid on/off', 'Toggle grid lines')
            wx.EVT_MENU(self, item.GetId(), self.OnGridToggle)
            cmapmenu = CMapMenu(self,
                                callback=self.OnColormap,
                                mapper=self.mapper,
                                canvas=self.canvas)
            item = popup.AppendMenu(wx.ID_ANY, "Colourmaps", cmapmenu)
            self.PopupMenu(popup, evt.GetPositionTuple())

        def OnColormap(self, name):
            print "Selected colormap", name

        def OnGridToggle(self, event):
            self.axes.grid()
            self.canvas.draw_idle()
示例#2
0
    class Frame(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, parent=None, title="Colourmap Selection")

            self.figure = Figure(dpi=80, figsize=(2,2))
            self.canvas = Canvas(self, -1, self.figure)
            self.axes = self.figure.gca()
            x = y = np.linspace(-3,3,80)
            X,Y = np.meshgrid(x,y)
            V = np.sin(Y**2+X**2)
            self.mapper = FigureImage(self.figure)
            im = self.axes.pcolor(x,y,V,shading='flat')
            try:
                cb = self.mapper.callbacksSM.connect('changed', ChangeCM(im))
            except AttributeError:   # Using 0.91 style
                self.mapper.add_observer(im)
            #self.figure.colorbar(self.mapper)

            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.canvas,1,wx.EXPAND)
            self.SetSizer(sizer)

            self.canvas.Bind(wx.EVT_RIGHT_DOWN, self.OnContext)


        def OnContext(self, evt):
            popup = wx.Menu()
            item = popup.Append(wx.ID_ANY,'&Grid on/off', 'Toggle grid lines')
            wx.EVT_MENU(self, item.GetId(), self.OnGridToggle)
            cmapmenu = CMapMenu(self, callback = self.OnColormap,
                                mapper=self.mapper, canvas=self.canvas)
            item = popup.AppendMenu(wx.ID_ANY, "Colourmaps", cmapmenu)
            self.PopupMenu(popup, evt.GetPositionTuple())
        def OnColormap(self, name):
            print "Selected colormap",name
        def OnGridToggle(self, event):
            self.axes.grid()
            self.canvas.draw()