Changeset ad8bcd6 in sasview


Ignore:
Timestamp:
Jun 13, 2008 2:12:48 PM (16 years ago)
Author:
Mathieu Doucet <doucetm@…>
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:
fc2b91a
Parents:
b659551
Message:

Improved transformation so that it always plots something reasonable in log scale. Minor tweak to dragging.

Location:
guitools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • guitools/PlotPanel.py

    rac9c465 rad8bcd6  
    1313from pylab import  gca, gcf 
    1414from plottables import Theory1D 
    15  
    16 #from matplotlib.backend_bases import MouseEvent 
    17 #from plottables import Data1D 
    1815#TODO: make the plottables interactive 
    1916 
     
    9289                lo=loprev 
    9390                hi=hiprev 
    94                 #print "Not possible to scale" 
    95             
    9691            else: 
    9792                lo,hi = math.pow(10.,lo),math.pow(10.,hi) 
    98                 #assert lo >0,"lo = %g"%lo 
    99                 #print "possible to scale" 
    100             
    101             #print "these are low and high",lo,hi 
    102  
    10393        return (lo,hi) 
    10494 
     
    158148        self.mousemotion=False 
    159149         
    160         #self.canvas.Bind(wx.EVT_MOUSE_EVENTS,self.onTest) 
    161150        self.axes = [self.subplot] 
    162          # new data for the fit  
     151        # new data for the fit  
    163152        self.fit_result = Theory1D(x=[], y=[], dy=None) 
    164153        #self.fit_result = Data1D(x=[], y=[],dx=None, dy=None) 
     
    174163        self.ErrBvalue=None 
    175164        self.Chivalue=None 
     165         
     166        # Dragging info 
    176167        self.begDrag=False 
    177         #self.begDragI=False 
    178168        self.xInit=None 
    179169        self.yInit=None 
    180170        self.xFinal=None 
    181171        self.yFinal=None 
    182    
     172         
     173        # Default locations 
     174        self._default_save_location = os.getcwd()         
     175         
     176         
    183177    def onLeftDown(self,event):  
    184178        """ left button down and ready to drag""" 
    185179        self.leftdown=True 
    186180        ax = event.inaxes 
    187         if ax !=None: 
     181        if ax != None: 
    188182            self.xInit,self.yInit=event.xdata,event.ydata 
    189183             
     
    208202                self.xFinal,self.yFinal=event.xdata,event.ydata 
    209203                 
     204                # Check whether this is the first point 
     205                if self.xInit==None: 
     206                    self.xInit = self.xFinal 
     207                    self.yInit = self.yFinal 
     208                     
    210209                xdelta = self.xFinal -self.xInit 
    211210                ydelta = self.yFinal -self.yInit 
     
    450449        #print "Save image not implemented" 
    451450        path = None 
    452         dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.png", wx.SAVE) 
     451        dlg = wx.FileDialog(self, "Choose a file", self._default_save_location, "", "*.png", wx.SAVE) 
    453452        if dlg.ShowModal() == wx.ID_OK: 
    454453            path = dlg.GetPath() 
    455             mypath = os.path.basename(path) 
    456             print path 
     454            self._default_save_location = os.path.dirname(path) 
    457455        dlg.Destroy() 
    458456        if not path == None: 
     
    654652                 
    655653            if (self.xLabel=="log10(x)" ): 
    656                 item.transformX(transform.toX,transform.errToX) 
     654                item.transformX(transform.toX_pos,transform.errToX_pos) 
    657655                self.set_xscale("log") 
    658656                name, units = item.get_xaxis()  
     
    664662                self.set_yscale("linear") 
    665663                name, units = item.get_yaxis() 
    666                 self.graph.yaxis("log\ \ %s" % name,  "%s" % units) 
     664                self.graph.yaxis("\log\ \ %s" % name,  "%s" % units) 
    667665                 
    668666                 
     
    675673                 
    676674            if ( self.yLabel=="log10(y)" ):  
    677                 item.transformY(transform.toX,transform.errToX) 
     675                item.transformY(transform.toX_pos,transform.errToX_pos) 
    678676                self.set_yscale("log")   
    679677                name, units = item.get_yaxis() 
     
    708706                yname, yunits = item.get_yaxis() 
    709707                xname, xunits = item.get_xaxis() 
    710                 self.graph.yaxis("log\ (%s \ \ %s)" % (yname,xname),  "%s%s" % (yunits,xunits)) 
     708                self.graph.yaxis("\log\ (%s \ \ %s)" % (yname,xname),  "%s%s" % (yunits,xunits)) 
    711709                
    712710                 
     
    717715                xname, xunits = item.get_xaxis()  
    718716                xunits = convertUnit(2,xunits)  
    719                 self.graph.yaxis("Log (%s \ \ %s^{2})" % (yname,xname),  "%s%s" % (yunits,xunits)) 
     717                self.graph.yaxis("\log (%s \ \ %s^{2})" % (yname,xname),  "%s%s" % (yunits,xunits)) 
    720718                 
    721719             
     
    726724                xname, xunits = item.get_xaxis() 
    727725                xunits = convertUnit(4,xunits)  
    728                 self.graph.yaxis("Log (%s \ \ %s^{4})" % (yname,xname),  "%s%s" % (yunits,xunits)) 
     726                self.graph.yaxis("\log (%s \ \ %s^{4})" % (yname,xname),  "%s%s" % (yunits,xunits)) 
    729727                 
    730728            if ( self.viewModel == "Guinier lny vs x^(2)"): 
     
    740738                self.set_yscale("linear") 
    741739                name, units = item.get_yaxis() 
    742                 self.graph.yaxis("$Log %s$" % name,  "%s" % units) 
     740                self.graph.yaxis("\log\ \ %s" % name,  "%s" % units) 
    743741                
    744742                 
  • guitools/fitDialog.py

    r052a66bc rad8bcd6  
    285285               
    286286                #Find the fitting parameters 
     287                # Always use the same defaults, so that fit history doesn't play a role!  
     288                self.cstA = fittings.Parameter(self.model, 'A', self.default_A) 
     289                self.cstB  = fittings.Parameter(self.model, 'B', self.default_B) 
    287290                 
    288291                if (self.xLabel.lower() == "log10(x)"): 
  • guitools/transform.py

    r05da1f89 rad8bcd6  
    88    """ 
    99    return x 
     10 
     11def toX_pos(x,y=None): 
     12    """ 
     13    This function is used to load value on Plottable.View 
     14    @param x: Float value 
     15    @return x, 
     16    """ 
     17    if not x>0: 
     18        raise ValueError, "Transformation only accepts positive values." 
     19    else: 
     20        return x 
    1021 
    1122def toX2(x,y=None): 
     
    3546    """ 
    3647    if not x > 0: 
    37         raise ValueError, "Log(X)of a negative value " 
     48        raise ValueError, "Log(x)of a negative value " 
    3849    else: 
    3950        return math.log(x) 
     
    8697    if dx==None: 
    8798        dx=0 
     99    return dx 
     100 
     101def errToX_pos(x,y=None,dx=None,dy=None): 
     102    """ 
     103        calculate error of x**2 
     104        @param x: float value 
     105        @param dx: float value 
     106    """ 
     107    if dx==None: 
     108        dx=0 
     109         
     110    # Check that the point on the graph is positive 
     111    # within errors 
     112    if not x-dx > 0: 
     113        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     114     
    88115    return dx 
    89116 
     
    124151    if dx==None: 
    125152        dx = 0 
     153         
     154    # Check that the point on the graph is positive 
     155    # within errors 
     156    if not x-dx > 0: 
     157        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     158         
    126159    if x!=0: 
    127160        dx = dx/(x*math.log(10)) 
     
    139172    if dx==None: 
    140173        dx = 0 
     174             
     175    # Check that the point on the graph is positive 
     176    # within errors 
     177    if not x-dx > 0: 
     178        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     179 
    141180    if x!=0: 
    142181        dx = dx/x 
     
    160199        calculate error of Log(xy) 
    161200    """ 
     201    # Check that the point on the graph is positive 
     202    # within errors 
     203    if (not x-dx > 0) or (not y-dy > 0): 
     204        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     205     
    162206    if (x!=0) and (y!=0): 
    163207        if dx == None: 
     
    175219        calculate error of Log(yx**2) 
    176220    """ 
     221    # Check that the point on the graph is positive 
     222    # within errors 
     223    if (not x-dx > 0) or (not y-dy > 0): 
     224        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     225     
    177226    if (x > 0) and (y > 0): 
    178227        if (dx == None): 
     
    217266        @param x: float value 
    218267    """ 
     268    # Check that the point on the graph is positive 
     269    # within errors 
     270    if (not x-dx > 0) or (not y-dy > 0): 
     271        raise ValueError, "Transformation does not accept point that are consistent with zero." 
     272     
    219273    if dx==None: 
    220274        dx=0 
Note: See TracChangeset for help on using the changeset viewer.