Changeset 8f59e95 in sasview


Ignore:
Timestamp:
Jul 4, 2012 4:56:50 AM (12 years ago)
Author:
Kieran Campbell <kieranrcampbell@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
8a687cfd
Parents:
d560a37
Message:

New dialog added for modifying graph appearance (axes & legend)

Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • plottools/src/danse/common/plottools/PlotPanel.py

    r9bab141 r8f59e95  
    948948        self.onContextMenu(event) 
    949949         
    950     def onLegend(self, event): 
     950# modified kieranrcampbell ILL june2012 
     951    def onLegend(self,legOnOff): 
    951952        """ 
    952953        Toggles whether legend is visible/not visible 
    953954        """ 
    954955         
    955         if self.legend_on: 
     956        if not legOnOff: 
    956957            for ax in self.axes: 
    957958                self.remove_legend(ax) 
     
    971972         
    972973        self.subplot.figure.canvas.draw_idle() 
    973         self.legend_on = not self.legend_on 
     974        self.legend_on = legOnOff 
    974975     
     976 
     977    # to do - remove this function when done 
     978 
    975979    def onChangeLegendLoc(self, event): 
    976980        """ 
     
    9971001        self.subplot.figure.canvas.draw_idle() 
    9981002         
     1003 
     1004    def ChangeLegendLoc(self, label): 
     1005        """ 
     1006        Changes legend loc based on user input 
     1007        """ 
     1008         
     1009        self.legendLoc = label 
     1010        self.legend_pos_loc = None 
     1011        # sort them by labels 
     1012        handles, labels = self.subplot.get_legend_handles_labels() 
     1013        hl = sorted(zip(handles, labels), 
     1014                    key=operator.itemgetter(1)) 
     1015        handles2, labels2 = zip(*hl) 
     1016        self.line_collections_list = handles2 
     1017        self.legend = self.subplot.legend(handles2, labels2, 
     1018                            prop=FontProperties(size=10), numpoints=1, 
     1019                            handletextsep=.05, loc=self.legendLoc) 
     1020        if self.legend != None: 
     1021                self.legend.set_picker(self.legend_picker) 
     1022                self.legend.set_axes(self.subplot) 
     1023        self.subplot.figure.canvas.draw_idle() 
     1024         
     1025 
     1026 
     1027 
    9991028    def remove_legend(self, ax=None): 
    10001029        """ 
     
    10481077        #based on this and plot it at user designated coordinates 
    10491078 
    1050     def onGridOnOff(self, event): 
     1079    def onGridOnOff(self,gridon_off): 
    10511080        """ 
    10521081        Allows ON/OFF Grid 
    10531082        """ 
    1054         if self.grid_on: 
    1055             self.grid_on = False 
    1056         else: 
    1057             self.grid_on = True 
     1083        self.grid_on = gridon_off 
     1084 
    10581085        self.subplot.figure.canvas.draw_idle() 
    10591086         
     
    12661293         
    12671294        """ 
     1295 
     1296        self.xcolor = color 
    12681297        if units != "": 
    12691298            label = label + " (" + units + ")" 
     
    12841313    def yaxis(self, label, units, font=None, color='black', t_font=None): 
    12851314        """yaxis label and units.""" 
     1315        self.ycolor = color 
     1316 
    12861317        if units != "": 
    12871318            label = label + " (" + units + ")" 
  • sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py

    rf8be87d r8f59e95  
    3737from binder import BindArtist 
    3838from appearanceDialog import appearanceDialog 
     39from graphAppearance import graphAppearance 
    3940 
    4041DEFAULT_QMAX = 0.05 
     
    4344BIN_WIDTH = 1 
    4445IS_MAC = (sys.platform == 'darwin') 
     46 
     47 
     48def find_key(dic, val): 
     49    """return the key of dictionary dic given the value""" 
     50    return [k for k, v in dic.iteritems() if v == val][0] 
     51 
     52 
    4553 
    4654class ModelPanel1D(PlotPanel, PanelBase): 
     
    478486 
    479487                id = wx.NewId() 
    480                 plot_menu.Append(id, '&Modify graph properties', name) 
     488                plot_menu.Append(id, '&Modify plot properties', name) 
    481489                wx.EVT_MENU(self, id, self.createAppDialog) 
    482490 
     
    495503                loc_menu.Append(id, str(label), str(label)) 
    496504                wx.EVT_MENU(self, id, self.onChangeLegendLoc) 
    497             id = wx.NewId() 
    498             self._slicerpop.AppendMenu(id, '&Modify Legend Location', loc_menu) 
    499              
    500             id = wx.NewId() 
    501             self._slicerpop.Append(id, '&Toggle Legend On/Off', 'Toggle Legend On/Off') 
    502             wx.EVT_MENU(self, id, self.onLegend) 
     505             
     506 
     507            # ILL mod start here 
     508 
     509            # id = wx.NewId() 
     510            # self._slicerpop.AppendMenu(id, '&Modify Legend Location', loc_menu) 
     511 
     512            # id = wx.NewId() 
     513            # self._slicerpop.Append(id, '&Toggle Legend On/Off', 'Toggle Legend On/Off') 
     514            # wx.EVT_MENU(self, id, self.onLegend) 
     515            # self._slicerpop.AppendSeparator() 
     516             
     517            # id = wx.NewId() 
     518            # self._slicerpop.Append(id, '&Edit Y Axis Label') 
     519            # wx.EVT_MENU(self, id, self._on_yaxis_label)      
     520            # id = wx.NewId() 
     521            # self._slicerpop.Append(id, '&Edit X Axis Label') 
     522            # wx.EVT_MENU(self, id, self._on_xaxis_label) 
     523     
     524            # id = wx.NewId() 
     525            # self._slicerpop.Append(id, '&Toggle Grid On/Off', 'Toggle Grid On/Off') 
     526            # wx.EVT_MENU(self, id, self.onGridOnOff) 
     527            # self._slicerpop.AppendSeparator() 
     528 
     529            id = wx.NewId() 
     530            self._slicerpop.Append(id, '&Modify graph appearance','Modify graph appearance') 
     531            wx.EVT_MENU(self, id, self.modifyGraphAppearance) 
    503532            self._slicerpop.AppendSeparator() 
    504              
    505             id = wx.NewId() 
    506             self._slicerpop.Append(id, '&Edit Y Axis Label') 
    507             wx.EVT_MENU(self, id, self._on_yaxis_label)      
    508             id = wx.NewId() 
    509             self._slicerpop.Append(id, '&Edit X Axis Label') 
    510             wx.EVT_MENU(self, id, self._on_xaxis_label) 
    511      
    512             id = wx.NewId() 
    513             self._slicerpop.Append(id, '&Toggle Grid On/Off', 'Toggle Grid On/Off') 
    514             wx.EVT_MENU(self, id, self.onGridOnOff) 
    515             self._slicerpop.AppendSeparator() 
     533 
    516534             
    517535            if self.position != None: 
     
    630648            curr_symbol = 13 
    631649 
    632         self.appD = appearanceDialog(self,'Modify graph properties') 
     650        self.appD = appearanceDialog(self,'Modify plot properties') 
    633651        self.appD.setDefaults(float(curr_size),int(curr_color),str(appearanceDialog.find_key(self.get_symbol_label(),int(curr_symbol))),curr_label) 
    634652        self.appD.Bind(wx.EVT_CLOSE, self.on_AppDialog_close)     
     
    652670        self.appD.Destroy() 
    653671        self._check_zoom_plot() 
     672 
     673 
     674    def modifyGraphAppearance(self,e): 
     675        self.graphApp = graphAppearance(self,'Modify graph appearance') 
     676 
     677         
     678 
     679        self.graphApp.setDefaults(self.grid_on,self.legend_on, 
     680                                  self.xaxis_label,self.yaxis_label, 
     681                                  self.xaxis_unit,self.yaxis_unit, 
     682                                  self.xaxis_font,self.yaxis_font, 
     683                                  find_key(self.get_loc_label(),self.legendLoc), 
     684                                  self.xcolor,self.ycolor) 
     685        self.graphApp.Bind(wx.EVT_CLOSE, self.on_graphApp_close) 
     686     
     687 
     688    def on_graphApp_close(self,e): 
     689# returns toggleGrid? toggleLegend? xlab, ylab, xunit, yunit, xfont, yfont, xcolor, ycolor, legendloc 
     690 
     691        #to do - make this passback mechanism much nicer 
     692        data = self.graphApp.getAppInfo() 
     693        self.onGridOnOff(data[0]) 
     694        self.onLegend(data[1]) 
     695        self.ChangeLegendLoc(data[10]) 
     696 
     697        self.xaxis_label = data[2] 
     698        self.yaxis_label = data[3] 
     699        self.xaxis_unit = data[4] 
     700        self.yaxis_unit = data[5] 
     701 
     702        self.xaxis(data[2],data[4],data[6],data[8]) 
     703        self.yaxis(data[3],data[5],data[7],data[9]) 
     704 
     705        xfont = data[6] 
     706        yfont = data[7] 
     707 
     708        # and a little sanity checking along the way 
     709 
     710        self.graphApp.Destroy() 
Note: See TracChangeset for help on using the changeset viewer.