示例#1
0
    def __init__(self, parent, title, size):
        wx.Frame.__init__(self, parent, title=title, size=size)

        self.menubar = wx.MenuBar()
        self.file = wx.Menu()
        menusavefig = self.file.Append(wx.ID_ANY, '&Save figure',\
                                       "Save the current figure")
        menuexit = self.file.Append(wx.ID_EXIT, \
                                    '&Exit', u"Close Fourier Frame")
        self.menubar.Append(self.file, '&File')
        self.SetMenuBar(self.menubar)

        self.figure = Figure()
        self.canvas = FigureCanvasWxAgg(self, -1, self.figure)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.EXPAND)
        self.SetSizer(self.sizer)

        self.Bind(wx.EVT_MENU, self._OnSave, menusavefig)
        self.Bind(wx.EVT_MENU, self._OnClose, menuexit)
        self.Bind(wx.EVT_CLOSE, self._OnClose)

        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.Realize()
        self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
        self.toolbar.update()
示例#2
0
    def __init__(self, parent, title):
        #wx.Frame.__init__(self, parent,id,'Procesador de Imagen Raster Version 1.1.1.1', size=(1000,600))
        #p = wx.Panel(self)
        wx.Frame.__init__(self, parent, title=title)
        self.MakeMenuBar()        
        self.initpos = 100
        self.sp = wx.SplitterWindow(self)            
        self.p1 = wx.Panel(self.sp)
        self.p2 = wx.Panel(self.sp,style=wx.SUNKEN_BORDER)            
        #self.p2.Hide()
        #self.p1.wx.SetBackgroundColour("pink")
        #self.p2.wx.SetBackgroundColour("sky blue")
        self.sp.Initialize(self.p1)
        self.sp.SetMinimumPaneSize(10)
        
        self.sp.SplitVertically(self.p1, self.p2,self.initpos)
        #ListBox
        dirlist = ['o','u','y']
        listBox = wx.ListBox(self.p1,-1,(20,20),(80,120),dirlist, wx.LB_SINGLE)
        listBox.SetSelection(3)
        
        #self.figure = Figure()
        #self.axes = self.figure.add_subplot(111)    
        self.figure = Figure()
        self.axes = self.figure.add_subplot(111)
        self.canvas = FigureCanvas(self.p2, wx.ID_ANY, self.figure)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.EXPAND)
        self.toolbar = NavigationToolbar2Wx(self.canvas)
##        self.toolbar.Realize()
        self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
        self.toolbar.Show()
示例#3
0
    def __init__(self, parent, ID, title, data=None, axes_label=None):

        wx.MDIChildFrame.__init__(self, parent, ID, title)
        self.data = data
        if axes_label is None:
            self.axes_title = self.GetTitle()
            self.axes_xlabel = "Frequency(GHz)"
            self.axes_ylabel = "Mag(dB)"
        else:
            self.axes_title = axes_label[0]
            self.axes_xlabel = axes_label[1]
            self.axes_ylabel = axes_label[2]

        #GUI layout
        self.Maximize()
        panel = wx.Panel(self, -1, style=wx.CLIP_CHILDREN)
        self.canvas = FigureCanvas(panel, -1, Figure())
        toolbar = NavigationToolbar2Wx(self.canvas)
        sizer = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(sizer)

        sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        sizer.Add(toolbar, 0, wx.EXPAND | wx.RIGHT)

        self.canvas.mpl_connect('motion_notify_event', self.UpdateStatusBar)
示例#4
0
    def __init__(self, parent, columns, df_list_ctrl):
        wx.Panel.__init__(self, parent)

        columns_with_neutral_selection = [''] + list(columns)
        self.columns = columns
        self.df_list_ctrl = df_list_ctrl

        self.figure = Figure(facecolor="white", figsize=(1, 1))
        self.axes = self.figure.add_subplot(111)
        self.canvas = FigureCanvas(self, -1, self.figure)

        chart_toolbar = NavigationToolbar2Wx(self.canvas)

        self.combo_box1 = wx.ComboBox(self, choices=columns_with_neutral_selection, style=wx.CB_READONLY)
        self.combo_box2 = wx.ComboBox(self, choices=columns_with_neutral_selection, style=wx.CB_READONLY)

        self.Bind(wx.EVT_COMBOBOX, self.on_combo_box_select)

        row_sizer = wx.BoxSizer(wx.HORIZONTAL)
        row_sizer.Add(self.combo_box1, 0, wx.ALL | wx.ALIGN_CENTER, 5)
        row_sizer.Add(self.combo_box2, 0, wx.ALL | wx.ALIGN_CENTER, 5)
        row_sizer.Add(chart_toolbar, 0, wx.ALL, 5)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.canvas, 1, flag=wx.EXPAND, border=5)
        sizer.Add(row_sizer)
        self.SetSizer(sizer)
示例#5
0
    def OnInit(self, *args, **kw):
        wxInitAllImageHandlers()
        self.frame = wxFrame(None, -1, "PyScope")

        self.frame.fig = Figure((5, 4), 75)
        self.frame.canvas = FigureCanvasWx(self.frame, -1, self.frame.fig)
        self.frame.toolbar = NavigationToolbar2Wx(self.frame.canvas)
        self.frame.toolbar.Realize()

        # On Windows, default frame size behaviour is incorrect
        # you don't need this under Linux
        tw, th = self.frame.toolbar.GetSizeTuple()
        fw, fh = self.frame.canvas.GetSizeTuple()
        self.frame.toolbar.SetSize(wxSize(fw, th))

        # Create a figure manager to manage things
        self.frame.figmgr = FigureManager(self.frame.canvas, 1, self)
        # Now put all into a sizer
        sizer = wxBoxSizer(wxVERTICAL)
        # This way of adding to sizer allows resizing
        sizer.Add(self.frame.canvas, 1, wxLEFT | wxTOP | wxGROW)
        # Best to allow the toolbar to resize!
        sizer.Add(self.frame.toolbar, 0, wxGROW)
        self.frame.SetSizer(sizer)
        self.frame.Fit()
        EVT_TRIG(self, self.OnTrig)

        # finalize wx stuff
        self.frame.SetAutoLayout(true)
        self.frame.Show()
        self.SetTopWindow(self.frame)
        return True
    def _create_canvas(self, parent):
        """ Create the MPL canvas. """
        # The panel lets us add additional controls.
        a = self.adapter
        fig = self.figure

        panel = wx.Panel(parent, -1, style=wx.CLIP_CHILDREN)
        sizer = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(sizer)

        # matplotlib commands to create a canvas
        mpl_control = FigureCanvas(panel, -1, fig)
        toolbar = NavigationToolbar2Wx(mpl_control)

        sizer.Add(toolbar, 0, wx.EXPAND)
        sizer.Add(mpl_control, 1, wx.LEFT | wx.TOP | wx.GROW)

        if a.max_size:
            self.figure.canvas.SetMaxSize(a.max_size)
        if a.min_size:
            self.figure.canvas.SetMinSize((a.min_size))

        if a.padding:
            for side, pad in a.padding.items():
                setattr(self.figure.subplotpars, side, pad)

        return panel
示例#7
0
    def __init__(self):
        Frame.__init__(self, None, -1, "Test embedded wxFigure")

        self.fig = Figure((5, 4), 75)
        self.canvas = FigureCanvasWxAgg(self, -1, self.fig)
        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.Realize()

        # On Windows, default frame size behaviour is incorrect
        # you don't need this under Linux
        tw, th = self.toolbar.GetSizeTuple()
        fw, fh = self.canvas.GetSizeTuple()
        self.toolbar.SetSize(Size(fw, th))

        # Create a figure manager to manage things

        # Now put all into a sizer
        sizer = BoxSizer(VERTICAL)
        # This way of adding to sizer allows resizing
        sizer.Add(self.canvas, 1, LEFT | TOP | GROW)
        # Best to allow the toolbar to resize!
        sizer.Add(self.toolbar, 0, GROW)
        self.SetSizer(sizer)
        self.Fit()
        EVT_TIMER(self, TIMER_ID, self.onTimer)
示例#8
0
    def __init__(self, title='', verb=1):
        wx.Frame.__init__(self, None, -1, title, size=(400, 300))
        self.verb = verb
        self.figure = Figure()
        self.canvas = FigureCanvas(self, -1, self.figure)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()

        # toolbar?
        # self.toolbar = NavigationToolbar2Wx(self.canvas)
        # self.toolbar.Realize()
        # self.sizer.Add(self.toolbar, 0, wx.BOTTOM | wx.EXPAND)
        # self.toolbar.update()

        # axis plotting info
        self.ax = None
        self.xmin = 1.0
        self.xmax = 0.0
        self.ymin = 1.0
        self.ymax = 0.0
        self.xlabel = ''
        self.ylabel = ''
        self.style = 'graph'

        self.images = []

        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.Realize()
        self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
        self.toolbar.update()
    def __init__(self, ):
        wx.Frame.__init__(self, None, -1, 'CanvasFrame', size=(550, 350))

        self.figure = Figure()
        self.axes = self.figure.add_subplot(111)
        t = np.arange(0.0, 3.0, 0.01)
        s = np.sin(2 * np.pi * t)

        self.axes.plot(t, s)
        self.axes.set_xlabel('t')
        self.axes.set_ylabel('sin(t)')
        self.figure_canvas = FigureCanvas(self, -1, self.figure)

        # Note that event is a MplEvent
        self.figure_canvas.mpl_connect('motion_notify_event',
                                       self.UpdateStatusBar)
        self.figure_canvas.Bind(wx.EVT_ENTER_WINDOW, self.ChangeCursor)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.figure_canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()

        self.statusBar = wx.StatusBar(self, -1)
        self.SetStatusBar(self.statusBar)

        self.toolbar = NavigationToolbar2Wx(self.figure_canvas)
        self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
        self.toolbar.Show()
示例#10
0
    def __init__(self, viewPanel, overlayList, displayCtx, extraModes=None):
        """Create a ``PlotProfile``.

        :arg viewPanel:    A :class:`.PlotPanel` instance.

        :arg overlayList:  The :class:`.OverlayList` instance.

        :arg displayCtx:   The :class:`.DisplayContext` instance.

        :arg extraModes:   Extra modes to pass through to the
                           :class:`.Profile` constructor.
        """

        if extraModes is None:
            extraModes = []

        modes = ['panzoom'] + extraModes

        profiles.Profile.__init__(self, viewPanel, overlayList, displayCtx,
                                  modes)

        self.__canvas = viewPanel.getCanvas()
        self.__axis = viewPanel.getAxis()

        # Pan/zoom functionality is actually
        # implemented by the NavigationToolbar2Wx
        # class, but the toolbar is not actually
        # shown.
        self.__toolbar = NavigationToolbar2Wx(self.__canvas)
        self.__toolbar.Show(False)

        # This flag keeps track of
        # the toolbar pan state
        self.__panning = False
示例#11
0
    def __init__(self, argv):
        wx.Frame.__init__(self,None,-1,
                         'Segment Size',size=(550,350))
        parser = argparse.ArgumentParser(description="utility to plot a persistence diagram")
        parser.add_argument('file')
        self.args = vars(parser.parse_args(argv[1:]))
        self.file = self.args['file']
        pf_json = load_data(self.file, 'persistence', None, None, None)
        if pf_json == None :
            print "Could not load persistence file : %s" % (self.args['file'],)
            exit()
        self.persistences = Persistences.fromJSONDict(pf_json)
        
        self.SetBackgroundColour(wx.NamedColour("WHITE"))
        self.figure = Figure()
        self.axes = self.figure.add_subplot(111)
        
        self.canvas = FigureCanvas(self, -1, self.figure)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(NavigationToolbar2Wx(self.canvas), 1, wx.LEFT | wx.TOP | wx.GROW)
        self.sizer.Add(self.canvas, 8, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()
        self.background = self.axes.figure.canvas.copy_from_bbox(self.axes.bbox)
        self.colors = ['black', 'red', 'yellow', 'orange', 'blue', 'green', 'violet']
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Bind(wx.EVT_KEY_UP, self.KeyEvent)
        self.index = 0
        self.point_Refresh()
示例#12
0
    def __init__(self, title, mins, maxs, values, *args, **kw):
        super().__init__(*args, **kw)
        panel = wx.Panel(self)
        panel.SetBackgroundColour(wx.Colour("White"))

        self.fig = Figure((5, 4), 75)
        # Adjust the subplots region to leave some space for the sliders and
        # buttons
        self.fig.subplots_adjust(left=0.25, bottom=0.25)
        self.ax = self.fig.add_axes([0.1, 0.2, 0.85, 0.75])
        self.canvas = FigureCanvasWxAgg(panel, -1, self.fig)
        self.toolbar = NavigationToolbar2Wx(self.canvas)  # matplotlib toolbar
        self.toolbar.Realize()

        self.sliders = []
        mins = np.atleast_1d(mins).flatten()
        maxs = np.atleast_1d(maxs).flatten()
        values = np.array(values).flatten()
        for idx, (min_, max_, val, tit) in enumerate(
                zip(mins, maxs, values, title)):
            slider = CustomSlider(
                panel,
                val,
                min_,
                max_,
                title=tit,
                height=wx.ScreenDC().GetPPI()[0] * 0.6,
                pads=wx.ScreenDC().GetPPI()[0] * 0.1,
            )
            slider.idx = idx
            self.sliders.append(slider)
        # self.highlighter2 = CustomSlider(panel, 1, 1, 8)
        self.clb = wx.CheckListBox(
            panel, -1, (wx.ScreenDC().GetPPI()[0] * 2, -1), wx.DefaultSize, []
        )
        self.retrain = wx.Button(panel, -1, "Retrain")

        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        rsizer = wx.BoxSizer(wx.VERTICAL)
        # This way of adding to sizer allows resizing
        rsizer.Add(self.canvas, 1, wx.EXPAND)
        for slider in self.sliders:
            # | wx.LEFT | wx.RIGHT, 20)
            rsizer.Add(slider, 0, wx.EXPAND | wx.RIGHT)
        rsizer.Add(self.toolbar, 0, wx.GROW | wx.RIGHT)

        lsizer = wx.BoxSizer(wx.VERTICAL)
        lsizer.Add(self.clb, 1, wx.EXPAND)
        lsizer.Add(self.retrain, 0)

        hsizer.Add(lsizer, 0, wx.EXPAND)
        hsizer.Add(rsizer, 1, wx.EXPAND)

        self.Bind(wx.EVT_LISTBOX, self.OnListBox)
        self.Bind(wx.EVT_CHECKLISTBOX, self.OnCheckListBox)
        self.Bind(wx.EVT_BUTTON, self.OnRetrain)
        panel.SetSizer(hsizer)
        self.Layout()
        self.Centre()
示例#13
0
 def _init_canvas(self):
     self._c = 0
     #self._fig.tight_layout()#rect=[-0.03, 0.02, 1.03, 1])
     self._canvas = FigureCanvasWxAgg(self._panel, -1, self._fig)
     self._toolbar = NavigationToolbar2Wx(self._canvas)
     #self._cursor = Cursor(self._ax, useblit=True, color='red',
     #                      linewidth=0.5)
     self._toolbar.Realize()
 def add_toolbar(self):
     self.toolbar = NavigationToolbar2Wx(self.canvas)
     self.toolbar.Realize()
     # By adding toolbar in sizer, we are able to put it at the bottom
     # of the frame - so appearance is closer to GTK version.
     self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
     # update the axes menu on the toolbar
     self.toolbar.update()
示例#15
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.figure = Figure()
        # self.axes = self.figure.add_subplot(1,1,1)
        # self.axes = self.figure.gca(projection='3d')
        self.canvas = FigureCanvas(self, -1, self.figure)

        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.AddLabelTool(
            5, '',
            wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR,
                                     (32, 32)))

        self.toolbar.Realize()

        self.cb_grid = wx.CheckBox(self, -1, "显示网格", style=wx.ALIGN_RIGHT)
        # self.Bind(wx.EVT_CHECKBOX, self.on_cb_grid, self.cb_grid)

        self.button1 = wx.Button(self, -1, "信道幅频特性图")
        self.button2 = wx.Button(self, -1, "主同步星座图")
        self.button3 = wx.Button(self, -1, "均衡前星座图")
        self.button4 = wx.Button(self, -1, "均衡后星座图")
        self.button5 = wx.Button(self, -1, "时频资源图")
        self.button1.SetBackgroundColour('black')
        self.button1.SetForegroundColour('white')
        self.button2.SetBackgroundColour('black')
        self.button2.SetForegroundColour('white')
        self.button3.SetBackgroundColour('black')
        self.button3.SetForegroundColour('white')
        self.button4.SetBackgroundColour('black')
        self.button4.SetForegroundColour('white')
        self.button5.SetBackgroundColour('black')
        self.button5.SetForegroundColour('white')
        self.Bind(wx.EVT_BUTTON, self.draw, self.button1)
        self.Bind(wx.EVT_BUTTON, self.draw_scatter, self.button2)
        self.Bind(wx.EVT_BUTTON, self.draw_3d, self.button3)
        self.Bind(wx.EVT_BUTTON, self.draw_plot, self.button4)
        self.Bind(wx.EVT_BUTTON, self.draw_plot, self.button5)

        ########开始布局############
        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer1.Add(self.button1, 1, wx.EXPAND)
        sizer1.Add(self.button2, 1, wx.EXPAND)
        sizer1.Add(self.button3, 1, wx.EXPAND)
        sizer1.Add(self.button4, 1, wx.EXPAND)
        sizer1.Add(self.button5, 1, wx.EXPAND)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
        self.sizer.Add(wx.StaticLine(self), 0, wx.EXPAND | wx.TOP | wx.BOTTOM,
                       5)
        self.sizer.Add(sizer1, 0, wx.EXPAND)
        self.sizer.Add(wx.StaticLine(self), 0, wx.EXPAND | wx.TOP | wx.BOTTOM,
                       5)
        self.sizer.Add(self.cb_grid, 0, wx.ALIGN_RIGHT)
        self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.TOP | wx.GROW)
        self.SetSizer(self.sizer)
        self.Fit()
示例#16
0
    def __init__(self, *args, **kwargs):
        wx.Window.__init__(self,*args,**kwargs)
        self.figure=Figure()
        
        #starting variables
        self.x = np.linspace(0.1,20,183)
        self.InY = np.sin(1./self.x)
        self.OutY = np.cos(1./self.x)
        self.phase = 90
        self.CombinedY = self.InY*np.sin(self.phase*np.pi/180)+self.OutY*np.cos(self.phase*np.pi/180)
        # print "phase is "+str(self.phase)
        # print "inY is multiplied by "+str(np.cos(self.phase*np.pi/180))
        # print "outY is multiplied by "+str(np.sin(self.phase**np.pi/180))
        # print "Difference for inY "+str(self.CombinedY[-1]-self.InY[-1])
        # print "Difference for outY "+str(self.CombinedY[-1]-self.OutY[-1])

        self.sortedX = self.x
        self.sortedSignal = self.CombinedY
        self.noBG_Y = self.InY
        self.polyOrder = 3
        self.despikeKernel = 15
        self.despikeThreshold = 350
        self.despikeRepeat = 12
        #self.decompLevel = 2
       # self.waveletType = 'coif2'
       # self.waveletMode = 'sym'
        self.despikeOn = False
        #self.medianfilterOn = False
       # self.waveletOn = False
       # self.despikeLength = False
        self.smoothOn= False
        self.windowOn= True
        self.polyOn= True
        self.smoothWinType = 'hamming'
        self.winlens = 30
        self.interp_data,self.inv_x,self.delta_inv_x = dHvA_Util.inv_field(self.x,self.InY)
        self.inYState = True
        self.outYState = False
        
        self.canvas = FigureCanvasWxAgg(self, -1, self.figure)
        
        #toolbar
        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.Realize()
        tw, th = self.toolbar.GetSizeTuple()
        fw, fh = self.canvas.GetSizeTuple()
        self.toolbar.SetSize(wx.Size(fw, th))
        self.toolbar.update()
        self.toolbar.Show()

        #sizers
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.canvas,1,wx.EXPAND)
        self.sizer.Add(self.toolbar,0,wx.GROW)
        self.SetSizer(self.sizer)
        self.sizer.Fit(self)
        self.draw()
示例#17
0
 def _get_toolbar(self, statbar):
     if matplotlib.rcParams['toolbar']=='classic':
         toolbar = NavigationToolbar2Wx(self.canvas, True)
     elif matplotlib.rcParams['toolbar']=='toolbar2':
         toolbar = NavigationToolbar2WxAgg(self.canvas)
         toolbar.set_status_bar(statbar)
     else:
         toolbar = None
     return toolbar
示例#18
0
 def add_toolbar(self):
     self.toolbar = NavigationToolbar2Wx(self.canvas)
     self.toolbar.Realize()
     tw, th = self.toolbar.GetSizeTuple()
     fw, fh = self.canvas.GetSizeTuple()
     self.toolbar.SetSize(wx.Size(fw, th))
     self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
     # update the axes menu on the toolbar
     self.toolbar.update()
示例#19
0
    def __init__(self, gui):

        #super(wxVisualisation, self).__init__(parent=None, id=-1)
        self.fig = pl.figure()
        #self.figurepanel = FigureCanvasWxAgg(self.panel, -1, self.fig)
        FigureCanvasWxAgg.__init__(self, gui, -1, self.fig)

        self.xlim, self.ylim, self.dataon = (), (), False

        # c'est la GUI e tle modele
        self.gui, self.core = gui, gui.core
        # polygone d'interaction sur une zone (pour pouvoir la modifier)
        self.polyInteract = None

        # liste de variables, sert pour la GUI et le combobox sur les variables
        self.listeNomVar = []
        for mod in self.core.modelList:
            for k in gui.linesDic[mod].keys():
                self.listeNomVar.extend(gui.linesDic[mod][k])
        self.curVar, self.curContour = None, 'Charge'  # variable courante selectionne
        self.curMedia, self.curOri, self.curPlan, self.curGroupe = 0, 'Z', 0, None
        # variable pour savoir si on est en cours de tracage d'une zone
        self.typeZone = -1

        # coordonnees et zone de la zone que l'on est en train de creer
        self.curZone = None  # objet graphique (ligne, point, rect..)
        self.x1, self.y1 = [], []
        self.tempZoneVal = []  # liste de values pour polyV
        self.calcE = 0
        self.calcT = 0
        self.calcR = 0
        # dit si calcule effectue ou non

        # dictionnaire qui est compose des variables de l'Aquifere
        # a chaque variable est associe une liste de zones
        self.listeZone, self.listeZoneText, self.listeZmedia = {}, {}, {}
        for i in range(len(self.listeNomVar)):
            #print self.listeNomVar[i]
            self.listeZone[self.listeNomVar[i]] = []
            self.listeZoneText[self.listeNomVar[i]] = []
            self.listeZmedia[self.listeNomVar[i]] = []

        # toolbar de la visu, de type NavigationToolbar2Wx
        self.toolbar = NavigationToolbar2Wx(self)
        self.toolbar.Realize()
        # ajout du subplot a la figure
        self.cnv = self.fig.add_axes([.05, .05, .9,
                                      .9])  #left,bottom, wide,height
        #self.toolbar.update()
        self.pos = self.mpl_connect('motion_notify_event', self.onPosition)

        # create the major objects:
        self.Contour, self.ContourF, self.ContourLabel, self.Vector = None, None, None, None
        self.Grid, self.Particles, self.Image, self.Map = None, None, None, None
        self.curOri, self.curLayer = 'Z', 0
        self.mesh, self.triangles = False, None
示例#20
0
    def __init__(self, parent, tuplNomVar):

        self.fig = pl.figure()  #(9,8), 90)
        FigureCanvasWxAgg.__init__(self, parent, -1, self.fig)
        self.xlim, self.ylim, self.dataon = (), (), False
        #ion()  #pour faire animation??

        # c'est la GUI e tle modele
        self.parent = parent
        self.model = parent.model
        self.traduit = parent.traduit
        self.tradinverse = parent.tradinverse
        # liste de GraphicObject selon les types
        self.listeObject = []
        # polygone d'interaction sur une zone (pour pouvoir la modifier)
        self.polyInteract = None

        # liste de variables, sert pour la GUI et le combobox sur les variables
        self.listeNomVar = list(tuplNomVar)
        self.listeNomVar.extend(
            ['PHT3D', 'Transport', 'Observation', 'Tr_Rech', 'PH_Rech'])
        self.curVar, self.curContour = None, 'Charge'  # variable courante selectionne
        self.curLayer, self.curOri, self.curPlan, self.curGroupe = 0, 'Z', 0, None
        # liste des types de zones (des constantes)
        self.listeNomZone = [
            Zone.POINT, Zone.LIGNE, Zone.RECT, Zone.POLY, Zone.POLYV
        ]
        # variable pour savoir si on est en cours de tracage d'une zone
        self.typeZone = -1

        # coordonnees et zone de la zone que l'on est en train de creer
        self.curZone = None  # objet graphique (ligne, point, rect..)
        self.x1, self.y1 = [], []
        self.tempZoneVal = []  # liste de valeurs pour polyV
        self.calcE = 0
        self.calcT = 0
        self.calcR = 0
        # dit si calcule effectue ou non

        # dictionnaire qui est compose des variables de l'Aquifere
        # a chaque variable est associe une liste de zones
        self.listeZone, self.listeZoneText, self.listeZlayer = {}, {}, {}
        for i in range(len(self.listeNomVar)):
            #print self.listeNomVar[i]
            self.listeZone[self.listeNomVar[i]] = []
            self.listeZoneText[self.listeNomVar[i]] = []
            self.listeZlayer[self.listeNomVar[i]] = []

        # toolbar de la visu, de type NavigationToolbar2Wx
        self.toolbar = NavigationToolbar2Wx(self)
        self.toolbar.Realize()
        # ajout du subplot a la figure
        self.cnv = self.fig.add_axes([.05, .05, .9,
                                      .88])  #left,bottom, wide,height
        self.toolbar.update()
        self.pos = self.mpl_connect('motion_notify_event', self.onPosition)
示例#21
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        PlotDataCore.__init__(self, parent)

        toolbar = NavigationToolbar2Wx(self.canvas)

        self.vbox = wx.BoxSizer(wx.VERTICAL)
        self.vbox.Add(self.canvas, 1, wx.EXPAND | wx.ALL)
        self.vbox.Add(toolbar, 0, wx.EXPAND)
        self.SetSizer(self.vbox)
示例#22
0
    def __init__(self, full_data) :
        self.full_rips_persistences = [PD.fromJSONDict(entry[0]['full_diagram']) for entry in full_data]
        self.full_rips_runtimes = [format_runtime(entry[0]['runtime']) for entry in full_data]
        self.sparse_rips_persistences = [[PD.fromJSONDict(e['diagram']) for e in entry[1:]] for entry in full_data]
        self.sparse_rips_distances = [[(e['bottleneck_distance'],e['wasserstein_l1'],e['wasserstein_l2']) for e in entry[1:]] \
                                      for entry in full_data]
        self.sparse_rips_sparsity = [[[float(s)*100.0 for s in e['sparsity']] if 'sparsity' in e else None for e in entry[1:]] for entry in full_data]
        self.sparse_rips_runtimes = [[format_runtime(e['runtime']) for e in entry[1:]] for entry in full_data]
        self.simplices = [int(entry['max_simplices']) if 'max_simplices' in entry else None for entry in full_data[0][1:]]
        self.epsilons = [float(entry['epsilon']) if 'epsilon' in entry else None for entry in full_data[0][1:]]

        wx.Frame.__init__(self, None, -1, "Full vs. Sparse Rips Filtration", size=(550, 550))

        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Bind(wx.EVT_KEY_UP, self.KeyEvent)

        self.segment_index = 0
        self.full_rips_figure = Figure()
        self.full_rips_axes = self.full_rips_figure.add_subplot(111)
        self.full_rips_canvas = FigureCanvas(self, -1, self.full_rips_figure)
        self.full_rips_title = self.full_rips_figure.suptitle("Persistence Diagram %s of %s runtime %s" % \
                                                              (self.segment_index + 1, len(self.full_rips_persistences), \
                                                               self.full_rips_runtimes[self.segment_index]))

        self.simplices_index = 0
        self.sparse_rips_figure = Figure()
        self.sparse_rips_axes = self.sparse_rips_figure.add_subplot(111)
        self.sparse_rips_canvas = FigureCanvas(self, -1, self.sparse_rips_figure)
        self.sparse_rips_title = self.sparse_rips_figure.suptitle("max simplices %s" % \
                                                                  (self.simplices[self.simplices_index],))

        self.sizer = wx.GridBagSizer(hgap=5, vgap=5)
        self.sizer.Add(NavigationToolbar2Wx(self.full_rips_canvas), pos=(0,0), span=(1,2), flag=wx.EXPAND)
        self.sizer.AddGrowableCol(1,0)
        self.sizer.Add(self.full_rips_canvas, pos=(1,0), span=(8,2), flag=wx.EXPAND)
        self.sizer.AddGrowableCol(9,0)
        self.sizer.Add(NavigationToolbar2Wx(self.sparse_rips_canvas), pos=(9,0), span=(1,2), flag=wx.EXPAND)
        self.sizer.Add(self.sparse_rips_canvas, pos=(10,0), span=(8,2), flag=wx.EXPAND)
        self.SetSizer(self.sizer)
        self.Fit()
        self.background = self.full_rips_axes.figure.canvas.copy_from_bbox(self.full_rips_axes.bbox)
        self.refresh()
示例#23
0
    def initialize_toolbar(self):
        """
        Creates a matplotlib toolbar and adds it to the status bar
        """
        # status bar which shows information about current mouse location
        self.status_bar = wx.StatusBar(self, -1)
        self.status_bar.SetFieldsCount(1)
        self.SetStatusBar(self.status_bar)

        # add toolbar to allow user to zoom, save, ect
        self.toolbar = NavigationToolbar2Wx(self.figure_canvas)
示例#24
0
	def add_toolbar(self):
		"""
		Add a toolbar to the Canvas.
		"""
		self.toolbar = NavigationToolbar2Wx(self.canvas)
		self.toolbar.Realize()

		tw, th = self.toolbar.GetSize()
		cw, ch = self.canvas.GetSize()

		self.toolbar.SetSize(wx.Size(cw, ch))
示例#25
0
 def add_toolbar(self):
     self.toolbar = NavigationToolbar2Wx(self.canvas)
     self.toolbar.Realize()
     if wx.Platform == "__WXMAC__":
         self.SetToolBar(self.toolbar)
     else:
         tw, th = self.toolbar.GetSize()
         fw, fh = self.canvas.GetSize()
         self.toolbar.SetSize(wx.Size(fw, th))
         self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
     self.toolbar.update()
示例#26
0
 def add_toolbar(self):
     """Copied verbatim from embedding_wx2.py"""
     self.toolbar = NavigationToolbar2Wx(self.canvas)
     self.toolbar.Realize()
     if IS_MAC:
         self.SetToolBar(self.toolbar)
     else:
         tw, th = self.toolbar.GetSizeTuple()
         fw, fh = self.canvas.GetSizeTuple()
         self.toolbar.SetSize(wx.Size(fw, th))
         self.sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND)
     self.toolbar.update()
示例#27
0
    def __init__(self, params, diagrams, bottleneck_distances, wasserstein_distances) :
        wx.Frame.__init__(self,None,-1,
                         'Bottleneck Distance',size=(550,350))
        self.params = params
        self.diagrams = diagrams
        self.bottleneck_distances = bottleneck_distances
        self.wasserstein_distances = wasserstein_distances

        self.segment_index = 0
        self.segment_start = list(set([p_['segment_start'] for p in self.params for p_ in p]))
        self.segment_start.sort()
        self.segment_sizes = list(set([p_['segment_size'] for p in self.params for p_ in p]))
        self.segment_sizes.sort()
        self.alpha = list(set([float(p_['max_simplices']) / (float(p_['segment_size'])**2) for p in self.params for p_ in p]))
        self.alpha.sort()
        self.runtimes = [(numpy.mean([p_['runtime'] for p in self.params for p_ in p 
                                      if p_['segment_size'] == size and float(p_['max_simplices']) / (float(p_['segment_size'])**2) == alpha]), 
                          size, alpha) for (size, alpha) in itertools.product(self.segment_sizes, self.alpha)]

        d_avg = []
        for i in range(len(self.segment_sizes)) :
            this_distances = [self.bottleneck_distances[j] for j in range(i,len(self.bottleneck_distances),len(self.segment_sizes))]
            d0 = [[[d[j][k] for d in this_distances if d[j][k] != -1] for k in range(len(this_distances[0][0]))] 
                  for j in range(len(this_distances[0]))]
            d0_avg = [[numpy.mean(d0[j][k]) if len(d0[j][k]) != 0 else 0.0 for k in range(len(this_distances[0][0]))] 
                      for j in range(len(this_distances[0]))]
            this_distances = [self.wasserstein_distances[j] for j in range(i,len(self.wasserstein_distances),len(self.segment_sizes))]
            d1 = [[[d[j][k] for d in this_distances if d[j][k] != -1] for k in range(len(this_distances[0][0]))] 
                  for j in range(len(this_distances[0]))]
            d1_avg = [[numpy.mean(d1[j][k]) if len(d1[j][k]) != 0 else 0.0 for k in range(len(this_distances[0][0]))] 
                      for j in range(len(this_distances[0]))]
            d_avg.append((d0_avg, d1_avg))

        self.plot_data = [(d0[0][1:], d1[0][1:]) for (d0, d1) in d_avg]
        
        self.colors = ['#d73027','#fc8d59','#fee090','#4575b4', '#91cf60', '#1a9850', '#91bfdb']
        self.figure = Figure()
        self.axes_bottleneck = self.figure.add_subplot(511)
        self.axes_wasserstein = self.figure.add_subplot(512)
        self.axes_runtime = self.figure.add_subplot(514)
        self.axes_simplices = self.figure.add_subplot(515)
        self.canvas = FigureCanvas(self, -1, self.figure)
        #        self.title = self.figure.suptitle("Ttile")
        self.sizer = self.sizer = wx.BoxSizer(wx.VERTICAL)
        i = 0
        self.sizer.Add(NavigationToolbar2Wx(self.canvas), 1, wx.LEFT | wx.TOP)
        self.sizer.Add(self.canvas, 8, wx.LEFT | wx.TOP | wx.GROW)

        self.SetSizer(self.sizer)
        self.background = self.axes_bottleneck.figure.canvas.copy_from_bbox(self.axes_bottleneck.bbox)
        self.refresh()
        self.Bind(wx.EVT_PAINT, self.OnPaint)
        self.Bind(wx.EVT_KEY_UP, self.KeyEvent)
 def __init__(self, full_data, segment_data, persistences):
     self.dataset_name = ""
     if isinstance(full_data.config.data_file, list):
         self.dataset_name = ", ".join(
             [os.path.split(f)[1] for f in full_data.config.data_file])
     else:
         self.dataset_name = os.path.split(full_data.config.data_file)[1]
     wx.Frame.__init__(self, None, -1, self.dataset_name, size=(550, 550))
     self.full_data = full_data
     self.segment_data = segment_data
     self.persistences = persistences
     self.Bind(wx.EVT_PAINT, self.OnPaint)
     self.Bind(wx.EVT_KEY_UP, self.KeyEvent)
     self.label_index = 0
     self.segment_index = 0
     self.labels = list(
         set([s.max_label() for s in self.full_data.segments]))
     self.colors = [[(random.random(), random.random(), random.random())
                     for i in self.full_data.config.data_index]
                    for l in self.labels]
     self.data_figure = Figure()
     self.data_axes = self.data_figure.add_subplot(111)
     self.data_canvas = FigureCanvas(self, -1, self.data_figure)
     self.title = self.data_figure.suptitle("Line %s of %s Label %s" % \
                                            (self.segment_index, len(self.full_data.segments),
                                             self.full_data.segments[self.segment_index].max_label()))
     self.persistence_figure = Figure()
     self.persistence_axes = self.persistence_figure.add_subplot(111)
     self.persistence_canvas = FigureCanvas(self, -1,
                                            self.persistence_figure)
     self.persistence_title = self.persistence_figure.suptitle("Persistence Diagram %s of %s window size %s" % \
                                                        (self.segment_index, len(self.full_data.segments),
                                                         self.segment_data.segments[self.segment_index].window_size))
     self.sizer = wx.GridBagSizer(hgap=5, vgap=5)
     self.sizer.Add(NavigationToolbar2Wx(self.data_canvas),
                    pos=(0, 0),
                    span=(1, 2),
                    flag=wx.EXPAND)
     self.sizer.AddGrowableCol(1, 0)
     self.sizer.Add(self.data_canvas,
                    pos=(1, 0),
                    span=(8, 2),
                    flag=wx.EXPAND)
     self.sizer.AddGrowableCol(9, 0)
     self.sizer.Add(self.persistence_canvas,
                    pos=(9, 0),
                    span=(8, 2),
                    flag=wx.EXPAND)
     self.SetSizer(self.sizer)
     self.Fit()
     self.background = self.data_axes.figure.canvas.copy_from_bbox(
         self.data_axes.bbox)
     self.refresh()
示例#29
0
    def __init__(self, parent, id=-1, dpi=None, **kwargs):
        wx.Panel.__init__(self, parent, id=id, **kwargs)
        self.figure = Figure(dpi=dpi, figsize=(2, 2))
        self.canvas = Canvas(self, -1, self.figure)
        self.figure.set_facecolor((1, 1, 1))
        self.figure.set_edgecolor((1, 1, 1))
        self.canvas.SetBackgroundColour('white')
        self.subplot = self.figure.add_subplot(111)
        self.plot_scores = None
        self.class_masks = None
        self.class_names = None
        self.Loadings = None
        self.object_opacity = None
        self.object_accuracies = None
        self.leg = None
        self.maskedPCA1 = None
        self.maskedPCA2 = None
        self.axes = None

        # If the script is loaded from ClassifierGUI, load the classification weaklearners
        try:
            self.classifier = classifier
            self.classifier_rules = classifier.algorithm.weak_learners
        except:
            self.classifier_rules = [('None', 0, np.array([0, 0]))]

        self.chMap = p.image_channel_colors
        self.toolbar = NavigationToolbar2Wx(self.canvas)
        self.toolbar.Realize()
        POSITION_OF_CONFIGURE_SUBPLOTS_BTN = 6
        self.toolbar.DeleteToolByPos(POSITION_OF_CONFIGURE_SUBPLOTS_BTN)

        self.statusBar = wx.StatusBar(self, -1)
        self.statusBar.SetFieldsCount(1)
        self.motion_event_active = False
        self.canvas.mpl_connect('motion_notify_event', self.update_status_bar)
        self.canvas.mpl_connect('button_press_event', self.on_open_image)

        self.hide_legend_btn = wx.Button(self, -1, " Hide legend ")
        wx.EVT_BUTTON(self.hide_legend_btn, -1, self.hide_show_legend)
        self.hide_legend = True

        tools_sizer = wx.BoxSizer(wx.HORIZONTAL)
        tools_sizer.Add(self.toolbar, 0, wx.RIGHT | wx.EXPAND)
        tools_sizer.AddSpacer(5)
        tools_sizer.Add(self.hide_legend_btn, 0, wx.LEFT | wx.EXPAND)
        tools_sizer.AddSpacer(5)
        tools_sizer.Add(self.statusBar, 0, wx.LEFT | wx.EXPAND)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.canvas, 1, wx.EXPAND)
        sizer.Add(tools_sizer, 0, wx.EXPAND)
        self.SetSizer(sizer)
示例#30
0
 def _create_canvas(self, parent):
     """ Create the MPL canvas. """
     # The panel lets us add additional controls.
     panel = wx.Panel(parent, -1, style=wx.CLIP_CHILDREN)
     sizer = wx.BoxSizer(wx.VERTICAL)
     panel.SetSizer(sizer)
     # matplotlib commands to create a canvas
     mpl_control = FigureCanvas(panel, -1, self.value)
     sizer.Add(mpl_control, 1, wx.LEFT | wx.TOP | wx.GROW)
     toolbar = NavigationToolbar2Wx(mpl_control)
     sizer.Add(toolbar, 0, wx.EXPAND)
     self.value.canvas.SetMinSize((10, 10))
     return panel