Changeset ffd23b5 in sasview for guiframe


Ignore:
Timestamp:
Jan 19, 2009 9:39:18 AM (15 years ago)
Author:
Gervaise Alina <gervyh@…>
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:
48112ab
Parents:
a2c38de
Message:
 
Location:
guiframe/local_perspectives/plotting
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • guiframe/local_perspectives/plotting/AnnulusSlicer.py

    ra2c38de rffd23b5  
    157157        new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
    158158        new_plot.group_id = "SectorPhi"+self.base.data2D.name 
    159          
     159        new_plot.xtransform="x" 
     160        new_plot.ytransform="y" 
    160161        wx.PostEvent(self.base.parent, NewPlotEvent(plot=new_plot, 
    161162                                                 title="SectorPhi" )) 
  • guiframe/local_perspectives/plotting/Plotter1D.py

    rd1dd9d4 rffd23b5  
    9292            @param event: data event 
    9393        """ 
     94        
    9495        #TODO: Check for existence of plot attribute 
    9596 
     
    112113                # plottable is already draw on the panel 
    113114                is_new = False 
    114  
     115         
     116             
    115117            
    116118        if is_new: 
     
    134136        #TODO: Should re-factor this 
    135137        #if event.plot._xunit != self.graph.prop["xunit"]: 
     138        
    136139        self.graph.xaxis(event.plot._xaxis, event.plot._xunit) 
    137140             
     
    223226                id = wx.NewId() 
    224227                slicerpop.Append(id, '&Add errors to data') 
     228                #print "panel scale before  ",self.xLabel, self.yLabel 
     229                #print "cyllinder before adding error", self.plots[self.graph.selected_plottable].x 
    225230                wx.EVT_MENU(self, id, self._on_add_errors) 
    226231            else: 
     
    276281            label, unit = self.plots[self.graph.selected_plottable].get_yaxis() 
    277282            new_plot.yaxis(label, unit) 
    278              
     283            #print "panel scale ",self.xLabel, self.yLabel 
    279284            self.graph.delete(self.plots[self.graph.selected_plottable]) 
    280285             
    281286            self.graph.add(new_plot) 
     287            # transforming the view of the new data into the same of the previous data 
     288            self._onEVT_FUNC_PROPERTY() 
     289            #print "cyllinder", self.plots[self.graph.selected_plottable].x,self.plots[self.graph.selected_plottable].view.x, new_plot.x, new_plot.view.x 
    282290            self.plots[self.graph.selected_plottable]=new_plot 
    283291             
  • guiframe/local_perspectives/plotting/Plotter2D.py

    r8a7a21b rffd23b5  
    154154             
    155155        self.slicer= None 
     156        
    156157        # Check axis labels 
    157158        #TODO: Should re-factor this 
  • guiframe/local_perspectives/plotting/SectorSlicer.py

    r3bae6c8 rffd23b5  
    184184        new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
    185185        new_plot.group_id = "SectorQ"+self.base.data2D.name 
     186        new_plot.xtransform = "ln(x)" 
    186187        wx.PostEvent(self.base.parent, NewPlotEvent(plot=new_plot, 
    187188                                                 title="SectorQ" )) 
  • guiframe/local_perspectives/plotting/boxSlicer.py

    raa1b747 rffd23b5  
    1313import math 
    1414 
    15 #from Plotter1D import AddPlotEvent 
     15from sans.guicomm.events import NewPlotEvent, StatusEvent 
    1616import SlicerParameters 
    1717import wx 
     
    2828        self.markers = [] 
    2929        self.axes = axes 
    30         self.qmax = self.base.qmax 
     30        self.qmax = self.base.data2D.xmax 
    3131        self.connect = self.base.connect 
    3232        self.x= x_max 
     
    3535        self.theta2= math.pi/3 
    3636        ## Number of points on the plot 
    37         self.nbins = 20 
     37        self.nbins = 30 
    3838        self.count=0 
    3939        self.error=0 
    40          
     40        self.averager=None 
    4141        self.left_line = VerticalLine(self, self.base.subplot,color='blue',  
    4242                                      zorder=zorder, 
     
    4545                                        xmin= -self.x, 
    4646                                        xmax= -self.x) 
    47         self.left_line.qmax = self.base.qmax 
     47        self.left_line.qmax = self.qmax 
    4848         
    4949        self.right_line= VerticalLine(self, self.base.subplot,color='black',  
     
    5353                                     xmin= self.x, 
    5454                                     xmax= self.x) 
    55         self.right_line.qmax = self.base.qmax 
     55        self.right_line.qmax = self.qmax 
    5656         
    5757        self.top_line= HorizontalLine(self, self.base.subplot,color='green',  
     
    6161                                      ymin= self.y, 
    6262                                      ymax= self.y) 
    63         self.top_line.qmax= self.base.qmax 
     63        self.top_line.qmax= self.qmax 
    6464         
    6565        self.bottom_line= HorizontalLine(self, self.base.subplot,color='gray',  
     
    6969                                      ymin= -self.y, 
    7070                                      ymax= -self.y) 
    71         self.bottom_line.qmax= self.base.qmax 
     71        self.bottom_line.qmax= self.qmax 
    7272         
    7373        self.update() 
     
    104104         
    105105    def clear(self): 
     106        self.averager=None 
    106107        self.clear_markers() 
    107108        self.left_line.clear() 
     
    171172        self.top_line.save(ev) 
    172173        self.bottom_line.save(ev) 
    173  
     174    def _post_data(self): 
     175        pass 
     176         
     177     
     178    def post_data(self,new_slab=None , nbins=None): 
     179        """ post data averaging in Q""" 
     180        x_min= min(self.left_line.x1, self.right_line.x1) 
     181        x_max= max(self.left_line.x1, self.right_line.x1) 
     182         
     183        y_min= min(self.top_line.y1, self.bottom_line.y1) 
     184        y_max= max(self.top_line.y1, self.bottom_line.y1)   
     185         
     186        if nbins !=None: 
     187            self.nbins 
     188        if self.averager==None: 
     189            if new_slab ==None: 
     190                raise ValueError,"post data:cannot average , averager is empty" 
     191            self.averager= new_slab 
     192        bin_width= (x_max + math.fabs(x_min))/self.nbins 
     193         
     194        box = self.averager( x_min=x_min, x_max=x_max, y_min=y_min, y_max=y_max, 
     195                         bin_width=bin_width) 
     196         
     197        boxavg = box(self.base.data2D) 
     198         
     199        from sans.guiframe.dataFitting import Data1D 
     200        if hasattr(boxavg,"dxl"): 
     201            dxl= boxavg.dxl 
     202        else: 
     203            dxl= None 
     204        if hasattr(boxavg,"dxw"): 
     205            dxw=boxavg.dxw 
     206        else: 
     207            dxw= None 
     208        
     209        new_plot = Data1D(x=boxavg.x,y=boxavg.y,dy=boxavg.dy,dxl=dxl,dxw=dxw) 
     210        new_plot.name = str(self.averager.__name__) +"("+ self.base.data2D.name+")" 
     211         
     212        
     213 
     214        new_plot.source=self.base.data2D.source 
     215        new_plot.info=self.base.data2D.info 
     216        new_plot.interactive = True 
     217        #print "loader output.detector",output.source 
     218        new_plot.detector =self.base.data2D.detector 
     219        # If the data file does not tell us what the axes are, just assume... 
     220        new_plot.xaxis("\\rm{Q}", 'rad') 
     221        new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
     222        new_plot.group_id = str(self.averager.__name__)+self.base.data2D.name 
     223        new_plot.id = str(self.averager.__name__) 
     224        wx.PostEvent(self.base.parent, NewPlotEvent(plot=new_plot, 
     225                                                 title=str(self.averager.__name__) )) 
     226         
     227         
    174228    def _post_data(self): 
    175229        # Compute data 
     
    220274        params["x_max"]= math.fabs(self.right_line.x1) 
    221275        params["y_max"]= math.fabs(self.top_line.y1) 
    222          
     276        params["nbins"]= self.nbins 
    223277        params["errors"] = self.error 
    224278        params["count"]= self.count 
     
    229283        self.x = float(math.fabs(params["x_max"])) 
    230284        self.y = float(math.fabs(params["y_max"] )) 
    231          
     285        self.nbins=params["nbins"] 
    232286        self.left_line.update(xmin= -1*self.x, 
    233287                              xmax = -1*self.x, 
     
    249303                                 ymax= -1*self.y) 
    250304        
    251         self._post_data() 
     305        self.post_data( nbins=None) 
    252306    def freeze_axes(self): 
    253307        self.base.freeze_axes() 
     
    503557         
    504558 
    505          
     559class BoxInteractorX(BoxInteractor): 
     560    def __init__(self,base,axes,color='black', zorder=3): 
     561        BoxInteractor.__init__(self, base, axes, color=color) 
     562        self.base=base 
     563        self._post_data() 
     564    def _post_data(self): 
     565        from DataLoader.manipulations import SlabX 
     566        self.post_data(SlabX )    
     567         
     568 
     569class BoxInteractorY(BoxInteractor): 
     570    def __init__(self,base,axes,color='black', zorder=3): 
     571        BoxInteractor.__init__(self, base, axes, color=color) 
     572        self.base=base 
     573        self._post_data() 
     574    def _post_data(self): 
     575        from DataLoader.manipulations import SlabY 
     576        self.post_data(SlabY )    
     577         
     578         
  • guiframe/local_perspectives/plotting/plotting.py

    r8a7a21b rffd23b5  
    119119            if not hasattr(event.plot,'data'): 
    120120                from Plotter1D import ModelPanel1D 
    121                 new_panel = ModelPanel1D(self.parent, -1, style=wx.RAISED_BORDER) 
     121                if hasattr(event.plot,"xtransform"): 
     122                    print "went here" 
     123                    xtransform = event.plot.xtransform 
     124                else: 
     125                    
     126                    xtransform =None 
     127                if hasattr(event.plot,"ytransform"): 
     128                    ytransform=  event.plot.ytransform 
     129                else: 
     130                    ytransform=None 
     131                new_panel = ModelPanel1D(self.parent, -1,xtransform=xtransform, 
     132                                         ytransform=ytransform, style=wx.RAISED_BORDER) 
    122133            else: 
    123134                from Plotter2D import ModelPanel2D 
  • guiframe/local_perspectives/plotting/ring.py

    r2d107b8 rffd23b5  
    2626        self.markers = [] 
    2727        self.axes = axes 
    28         self.qmax = self.base.qmax 
     28        self.qmax = self.base.data2D.xmax 
    2929        self.connect = self.base.connect 
    3030         
     
    3434        # Inner circle 
    3535        self.inner_circle = RingInteractor(self, self.base.subplot, zorder=zorder, r=self.qmax/2.0) 
    36         self.inner_circle.qmax = self.base.qmax 
     36        self.inner_circle.qmax = self.qmax 
    3737       
    3838        #self.outer_circle.set_cursor(self.base.qmax/1.8, 0) 
Note: See TracChangeset for help on using the changeset viewer.