Changeset 7a03e65 in sasview for guitools/PlotPanel.py


Ignore:
Timestamp:
Apr 10, 2008 6:29:17 PM (16 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:
370e587
Parents:
3d3a0e5
Message:

plotpanel modified plottables and fitdialog

File:
1 edited

Legend:

Unmodified
Added
Removed
  • guitools/PlotPanel.py

    r3d3a0e5 r7a03e65  
    6363        self.prevXtrans =" " 
    6464        self.prevYtrans =" " 
     65         
    6566    def returnTrans(self): 
    6667        return self.xscales,self.yscales 
     
    8182        list = self.graph.returnPlottable() 
    8283        from fitDialog import LinearFit 
    83         print len(list) 
     84         
    8485        if len(list.keys())>0: 
    8586            first_item = list.keys()[0] 
     
    101102        dial.Destroy() 
    102103             
    103     def toX(self,x): 
     104    def toX(self,x,y=None): 
    104105        """ 
    105106            This function is used to load value on Plottable.View 
     
    109110        return x 
    110111     
    111     def toX2(self,x): 
     112    def toX2(self,x,y=None): 
    112113        """ 
    113114            This function is used to load value on Plottable.View 
     
    117118        return x*x 
    118119     
    119     def fromX2(self,x): 
     120    def fromX2(self,x,y=None): 
    120121         """ 
    121122             This function is used to load value on Plottable.View 
     
    127128         else: 
    128129             return math.sqrt(x) 
    129     def toLogX(self,x): 
     130    def toLogX(self,x,y=None): 
    130131        """ 
    131132            This function is used to load value on Plottable.View 
     
    138139            return math.log(x) 
    139140         
    140     def toOneOverX(self,x): 
     141    def toOneOverX(self,x,y=None): 
    141142        if x !=0: 
    142143            return 1/x 
    143144        else: 
    144145            raise ValueError,"cannot divide by zero" 
    145     def toOneOverSqrtX(self,x): 
    146         if x > 0: 
    147             return 1/math.sqrt(x) 
    148         else: 
    149             raise ValueError,"cannot be computed" 
     146    def toOneOverSqrtX(self,x=None,y=None): 
     147        if y!=None: 
     148            if y > 0: 
     149                return 1/math.sqrt(y) 
     150            else: 
     151                raise ValueError,"cannot be computed" 
     152        if x!= None: 
     153            if x > 0: 
     154                return 1/math.sqrt(x) 
     155            else: 
     156                raise ValueError,"cannot be computed" 
     157         
    150158    def toLogYX2(self,x,y): 
    151159        if y*(x**2) >0: 
     
    247255    def onSaveImage(self, evt): 
    248256        #figure.savefig 
    249         print "Save image not implemented" 
     257        #print "Save image not implemented" 
    250258        path = None 
    251259        dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.png", wx.SAVE) 
     
    285293        pos = self.ScreenToClient(pos) 
    286294        self.PopupMenu(slicerpop, pos) 
    287          
    288295     
    289296    ## The following is plottable functionality 
     
    452459                name, units = item.get_yaxis() 
    453460                self.graph.yaxis("%s" %name,  "%s" % units) 
     461                 
    454462            if ( self.yscales =="Log(y*x)"): 
    455                 item.transform_xy( self.toXY ,self.errToXY ) 
    456                 self.set_yscale("log") 
     463                item.transform_y( self.toLogXY ,self.errToLogXY ) 
     464                self.set_yscale("linear") 
    457465                yname, yunits = item.get_yaxis() 
    458466                xname, xunits = item.get_xaxis() 
    459                 self.graph.yaxis("%s"+"*"+"%s" % (yname,xname),  "%s^{-1}"+"*"+"s^{-1}" % (yunits,xunits)) 
     467                self.graph.yaxis("%s%s" % (yname,xname),  "%s^{-1}%s^{-1}" % (yunits,xunits)) 
    460468            if ( self.yscales =="Log(y*x^(2)"): 
    461                 item.transform_xy( self.toYX2 ,self.errToYX2 ) 
    462                 self.set_yscale("log") 
     469                item.transform_y( self.toYX2 ,self.errToYX2 ) 
     470                self.set_yscale("linear") 
    463471                yname, yunits = item.get_yaxis() 
    464472                xname, xunits = item.get_xaxis() 
    465                 self.graph.yaxis("%s"+"*"+"%s^{2}" % (yname,xname),  "%s^{-1}"+"*"+"s^{-2}" % (yunits,xunits)) 
     473                self.graph.yaxis("%s%s^{2}" % (yname,xname),  "%s^{-1}%s^{-2}" % (yunits,xunits)) 
    466474    
    467475        self.prevXtrans = self.xscales  
     
    471479        self.subplot.figure.canvas.draw_idle() 
    472480         
    473     def errToX(self,x,dx=None): 
     481    def errToX(self,x,y=None,dx=None,dy=None): 
    474482        """ 
    475483            calculate error of x**2 
     
    477485            @param dx: float value 
    478486        """ 
    479         if (dx != None) and (math.fabs(dx) >= math.fabs(x)): 
    480             return math.fabs(0.9*x) 
    481         if dx==None: 
    482              return 0 
    483         return math.fabs(dx) 
    484      
    485     def errToX2(self,x,dx=None): 
     487        return dx 
     488     
     489     
     490    def errToX2(self,x,y=None,dx=None,dy=None): 
    486491        """ 
    487492            calculate error of x**2 
     
    496501        else: 
    497502            return 0.0 
    498     def errFromX2(self,x,dx=None): 
     503    def errFromX2(self,x,y=None,dx=None,dy=None): 
    499504        """ 
    500505            calculate error of sqrt(x) 
     
    514519            return math.fabs(err) 
    515520         
    516     def errToLogX(self,x,dx=None): 
    517         """ 
    518             calculate error of Log(xy) 
     521    def errToLogX(self,x,y=None,dx=None,dy=None): 
     522        """ 
     523            calculate error of Log(x) 
    519524            @param x: float value 
    520525            @param dx: float value 
    521526        """ 
    522         if x!=0: 
    523             if dx==None: 
    524                 #err = 1/x 
    525                 err = 0 
    526             else: 
    527                 err = dx/x 
    528             if math.fabs(err) >= math.fabs(x): 
    529                 err = 0.9*x 
    530         else: 
    531             err = 0.9*x 
    532          
    533         return math.fabs(err) 
     527        if math.fabs(dx) >= math.fabs(x): 
     528            return 0.9*x 
     529        return dx 
     530     
    534531    def errToXY(self, x, y, dx=None, dy=None): 
    535532        if dx==None: 
     
    541538            err =0.9*x 
    542539        return err  
     540     
    543541    def errToYX2(self, x, y, dx=None, dy=None): 
    544542        if dx==None: 
     
    585583        return math.sqrt(math.fabs(err))  
    586584             
    587     def errOneOverX(self,x,dx): 
     585    def errOneOverX(self,x,y=None,dx=None, dy=None): 
    588586        """ 
    589587             calculate error on 1/x 
    590588        """ 
    591         if (x != 0) and (dx!=None): 
     589        if (x != 0): 
    592590            if dx ==None: 
    593591                dx= 0 
     
    600598        return math.fabs(err) 
    601599     
    602     def errOneOverSqrtX(self): 
     600    def errOneOverSqrtX(self,x,y=None, dx=None,dy=None): 
    603601        """ 
    604602            Calculate error on 1/sqrt(x) 
    605603        """ 
    606         if (x >0) and (dx!=None): 
     604        if (x >0): 
    607605            if dx==None: 
    608606                dx =0 
     
    625623        self.graph.add(plottable) 
    626624        self.graph.render(self) 
     625        self.subplot.figure.canvas.draw_idle() 
    627626        self.graph.delete(plottable) 
    628         self.subplot.figure.canvas.draw_idle() 
     627         
     628      
    629629         
    630630     
Note: See TracChangeset for help on using the changeset viewer.