Changeset f193585 in sasview for guitools/plottables.py


Ignore:
Timestamp:
Apr 28, 2008 3:48:59 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:
6ed101a
Parents:
9e8dc22
Message:

some changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • guitools/plottables.py

    r46693050 rf193585  
    4242import copy 
    4343import numpy 
     44import math 
    4445 
    4546if 'any' not in dir(__builtins__): 
     
    181182        else: 
    182183            self.color =0  
     184             
    183185 
    184186    def reset(self): 
     
    361363    ##Use the following if @classmethod doesn't work 
    362364    # labels = classmethod(labels) 
    363  
     365    def getTransform(self,transx,transy): 
     366        self.view.transx = transx 
     367        self.view.transy = transy 
     368         
    364369    def __init__(self): 
    365370        self.view = View() 
     
    417422         
    418423    def returnValuesOfView(self): 
    419          
    420424        return self.view.returnXview() 
     425     
    421426    def check_data_PlottableX(self):  
    422427        self.view.check_data_logX() 
     428         
    423429    def check_data_PlottableY(self):  
    424430        self.view.check_data_logY()  
    425     def originalXrange(self): 
    426         self.view.reelXrange() 
    427     def reducedXrange(self,min,max): 
    428         self.view.reduceXrange(min, max) 
     431    def returnTransformationx(self,transx,transdx): 
     432        self.view.returntransformx(transx,transdx) 
     433    def returnTransformationy(self,transy,transdy): 
     434        self.view.returntransformy(transy,transdy) 
     435    
    429436    class View: 
    430437        """ 
     
    447454            self.DXreel = self.dx 
    448455            self.DYreel = self.dy 
    449             
     456            self.transx ="" 
     457            self.transy ="" 
     458            self.funcx= None 
     459            self.funcy= None 
     460            self.funcdx= None 
     461            self.funcdy= None 
     462     
    450463        def transform_x(self, func, errfunc, x,y=None,dx=None, dy=None): 
    451464            """ 
     
    474487            self.x = [] 
    475488            self.dx = [] 
    476              
     489            tempy=[] 
     490            tempdy=[] 
     491            print "this is initial value of y transformed",self.y 
     492            print "this is initial value of dy transformed",self.dy 
    477493            for i in range(len(x)): 
    478494                if has_y: 
    479495                     try: 
    480496                         xtemp = func(x[i],y[i]) 
    481                           
    482                           
     497                         tempy.append(self.funcy.y[i]) 
     498                         tempdy.append(self.funcdy.dy[i]) 
    483499                         if (dx!=None) and (dy !=None): 
    484500                             dxtemp = errfunc(x[i], y[i], dx[i], dy[i]) 
     
    489505                         else: 
    490506                             dxtemp = errfunc(x[i],y[i],0, 0) 
    491                           
    492507                         self.x.append(xtemp) 
    493                          self.dx.append(dxtemp) 
    494                          self.Xreel = [] 
    495                          self.DXreel=[] 
    496                          self.Xreel = self.x 
    497                          self.DXreel = self.dx 
    498                           
     508                         self.dx.append(dxtemp)   
    499509                     except: 
     510                         if len(tempy)>0: 
     511                             del tempy[len(tempy)-1] 
     512                             del tempdy[len(tempdy)-1] 
    500513                         print "View.transform_x: skipping point %g" % x[i] 
    501                          print sys.exc_value 
    502                           
    503                           
     514                         print sys.exc_value    
    504515                else: 
    505516                    try: 
    506517                        xtemp = func(x[i]) 
     518                        tempy.append(self.funcy.y[i]) 
     519                        tempdy.append(self.funcdy.dy[i]) 
    507520                        if (dx != None): 
    508521                            dxtemp = errfunc(x[i], dx[i]) 
     
    510523                            dxtemp = errfunc(x[i],None)   
    511524                        self.x.append(xtemp) 
    512                         self.dx.append(dxtemp) 
    513                         self.Xreel = [] 
    514                         self.DXreel=[] 
    515                         self.Xreel = self.x 
    516                         self.DXreel = self.dx 
    517                           
     525                        self.dx.append(dxtemp)  
    518526                    except: 
     527                         if len(tempy)>0: 
     528                             del tempy[len(tempy)-1] 
     529                             del tempdy[len(tempdy)-1] 
    519530                         print "View.transform_x: skipping point %g" % x[i] 
    520531                         print sys.exc_value 
    521                      
    522                           
     532            self.y=tempy 
     533            self.dy=tempdy 
     534            self.Xreel = [] 
     535            self.DXreel=[] 
     536        def returntransformx(self,funcx,funcdx):     
     537            self.funcx= funcx 
     538            self.funcdx= funcdx 
     539             
     540        def returntransformy(self,funcy,funcdy):     
     541            self.funcy= funcy 
     542            self.funcdy= funcdy 
    523543        def transform_y(self, func, errfunc, y, x=None,dx=None,dy=None): 
    524544            """ 
     
    547567            self.y = [] 
    548568            self.dy = [] 
    549             
     569            tempx=[] 
     570            tempdx=[] 
     571            print "this is initial value of x transformed",self.x 
     572            print "this is initial value of dx transformed",self.dx 
    550573            for i in range(len(y)): 
    551574                 
     
    553576                     try: 
    554577                         tempy = func(y[i],x[i]) 
     578                         tempx.append(self.funcx.x[i]) 
     579                         tempdx.append(self.funcdx.x[i]) 
    555580                         if (dx!=None) and (dy !=None): 
    556581                             tempdy = errfunc(y[i], x[i], dy[i], dx[i]) 
     
    563588                         self.y.append(tempy) 
    564589                         self.dy.append(tempdy) 
    565                          self.Yreel = [] 
    566                          self.DYreel=[] 
    567                          self.Yreel = self.y 
    568                          self.DYreel = self.dy 
    569590                     except: 
     591                         if len(tempx)>0: 
     592                             del tempx[len(tempx)-1] 
     593                             del tempdx[len(tempdx)-1] 
    570594                         print "View.transform_y: skipping point %g" % y[i] 
    571595                         print sys.exc_value 
     
    574598                     try: 
    575599                         tempy = func(y[i]) 
     600                         tempx.append(self.funcx.x[i]) 
     601                         tempdx.append(self.funcdx.dx[i]) 
    576602                         if (dy != None): 
    577603                             tempdy = errfunc( y[i],dy[i]) 
     
    579605                             tempdy = errfunc( y[i],None) 
    580606                         self.y.append(tempy) 
    581                          self.dy.append(tempdy) 
    582                          self.Yreel = [] 
    583                          self.DYreel=[] 
    584                          self.Yreel = self.y 
    585                          self.DYreel = self.dy 
     607                         self.dy.append(tempdy)    
    586608                     except: 
     609                          if len(tempx)>0: 
     610                              del tempx[len(tempx)-1] 
     611                              del tempdx[len(tempdx)-1] 
    587612                          print "View.transform_y: skipping point %g" % y[i] 
    588613                          print sys.exc_value 
    589                            
    590  
    591              
     614                     
     615            self.x = tempx 
     616            self.dx = tempdx 
     617            self.Yreel = [] 
     618            self.DYreel=[] 
     619            self.Yreel = self.y 
     620            self.DYreel = self.dy 
     621            print "this is x length",self.x 
     622            print "this is y length",self.y 
     623            print "this is dx length",self.dx 
     624            print "this is dy length",self.dy 
    592625        def returnXview(self): 
    593626            return self.x,self.y,self.dx,self.dy 
    594627         
    595         def checkMin(self,x,min,pos=None): 
    596             if pos==None: 
    597                 pos=0 
    598                 for i in range(len(self.x)): 
    599                     if not min in x:# The user enters a value not in x 
    600                         if x[i] > min: 
    601                             index= i-1 
    602                             print "this is index",index 
    603                             return index1 
    604                     else: 
    605                          index=i 
    606                          print"the user enter a value inside x",index 
    607                          return index 
    608             else: 
    609                 index= pos 
    610                 return index 
    611              
    612         def checkMax(self,x,max,pos=None): 
    613             if pos==None: 
    614                 pos=0 
    615                 for i in range(len(self.x)): 
    616                     if not max in x:# The user enters a value not in x 
    617                         if x[i] >max: 
    618                             
    619                             index= i-1 
    620                             return index 
    621                     else: 
    622                          index=i 
    623                          return index 
    624             else: 
    625                 index= pos 
    626                 return index 
    627                
    628         def reduceXrange(self,min,max): 
    629              
    630             # to change the x range to the user range 
    631             self.Xscale = [] 
    632             self.Yscale = [] 
    633             self.DXscale = [] 
    634             self.DYscale = [] 
    635             indexmin =self.checkMin(self.x,min,None) 
    636             indexmax =self.checkMin(self.x,max,None) 
    637             for i in range(len(self.x)): 
    638                 if( self.x[i] >=self.x[indexmin])and( self.x[i] <= max): 
    639                     self.Xscale.append(self.x[i]) 
    640                     self.Yscale.append(self.y[i]) 
    641                     self.DXscale.append(self.dx[i]) 
    642                     self.DYscale.append(self.dy[i]) 
    643             print self.Xscale 
    644             self.x= self.Xscale   
    645             self.y= self.Yscale 
    646             self.dx= self.DXscale 
    647             self.dy= self.DYscale 
    648          
    649              
     628      
    650629        def reelXrange(self): 
    651630            self.x= self.Xreel 
     
    653632            self.dx= self.DXreel 
    654633            self.dy= self.DYreel 
    655             
    656634         
    657635        def check_data_logX(self):  
     
    660638            tempy=[] 
    661639            tempdy=[] 
    662          
    663             for i in range(len(self.x)): 
     640            if self.transx=="log10(x)" : 
     641                for i in range(len(self.x)): 
     642                    try: 
     643                        if (self.x[i]> 0): 
     644                            
     645                            tempx.append(self.x[i]) 
     646                            tempdx.append(self.dx[i]) 
     647                            tempy.append(self.y[i]) 
     648                            tempdy.append(self.dy[i]) 
     649                    except: 
     650                        #print "View.transform_x: skipping point %g" %self.x[i] 
     651                        print sys.exc_value   
     652                        pass  
     653            if (self.transx == "x"):    
     654                if (self.transy == "ln(y*x)"): 
     655                        try: 
     656                            if (self.y[i]*self.x[i]> 0): 
     657                                tempx.append(self.x[i]) 
     658                                tempdx.append(self.dx[i]) 
     659                                tempy.append(self.y[i]) 
     660                                tempdy.append(self.dy[i]) 
     661                        except: 
     662                            #print "View.transform_x: skipping point %g" %self.x[i] 
     663                            print sys.exc_value   
     664                            pass 
     665            if(self.transy =="ln(y*x^(2))")or(self.transy =="ln(y*x^(4))"): 
     666                print "this is y transform",self.y 
     667                print "this is x transform",self.x 
    664668                try: 
    665                     if (self.x[i]> 0): 
    666                         
     669                    if (self.y[i]> 0 )and (self.x[i]!=0): 
    667670                        tempx.append(self.x[i]) 
    668671                        tempdx.append(self.dx[i]) 
     
    672675                    #print "View.transform_x: skipping point %g" %self.x[i] 
    673676                    print sys.exc_value   
    674                     pass      
    675                  
     677                    pass 
    676678            self.x=[] 
    677679            self.dx=[] 
     
    682684            self.dx=tempdx 
    683685            self.dy=tempdy 
     686             
    684687        def check_data_logY(self):  
    685688            tempx=[] 
     
    687690            tempy=[] 
    688691            tempdy=[] 
    689          
    690692            for i in range(len(self.x)): 
     693                if (self.transy == "ln(y)") or (self.transy == "log10(y)" )or\ 
     694                     (self.transy =="1/sqrt(y)") : 
     695                     try: 
     696                        if (self.y[i]> 0): 
     697                            tempx.append(self.x[i]) 
     698                            tempdx.append(self.dx[i]) 
     699                            tempy.append(self.y[i]) 
     700                            tempdy.append(self.dy[i]) 
     701                     except: 
     702                        #print "View.transform_x: skipping point %g" %self.x[i] 
     703                        print sys.exc_value   
     704                        pass 
     705                if(self.transy == "1/y"): 
     706                    try: 
     707                        if (self.y[i]!=0): 
     708                            tempx.append(self.x[i]) 
     709                            tempdx.append(self.dx[i]) 
     710                            tempy.append(self.y[i]) 
     711                            tempdy.append(self.dy[i]) 
     712                    except: 
     713                        #print "View.transform_x: skipping point %g" %self.x[i] 
     714                        print sys.exc_value   
     715                        pass   
     716            if (self.transx == "x"):    
     717                if (self.transy == "ln(y*x)"): 
     718                        try: 
     719                            if (self.y[i]*self.x[i]> 0): 
     720                                tempx.append(self.x[i]) 
     721                                tempdx.append(self.dx[i]) 
     722                                tempy.append(self.y[i]) 
     723                                tempdy.append(self.dy[i]) 
     724                        except: 
     725                            #print "View.transform_x: skipping point %g" %self.x[i] 
     726                            print sys.exc_value   
     727                            pass 
     728            if(self.transy =="ln(y*x^(2))")or(self.transy =="ln(y*x^(4))"): 
     729                print "this is y transform",self.y 
     730                print "this is x transform",self.x 
    691731                try: 
    692                     if (self.y[i]> 0): 
    693                         
     732                    if (self.y[i]> 0 )and (self.x[i]!= 0): 
    694733                        tempx.append(self.x[i]) 
    695734                        tempdx.append(self.dx[i]) 
     
    699738                    #print "View.transform_x: skipping point %g" %self.x[i] 
    700739                    print sys.exc_value   
    701                     pass      
     740                    pass 
    702741                 
    703742            self.x=[] 
     
    735774    def render(self,plot,**kw): 
    736775        plot.points(self.view.x,self.view.y,dx=self.view.dx,dy=self.view.dy,**kw) 
    737         #plot.points(self.x,self.y,dx=self.dx,dy=self.dy,**kw) 
     776      
    738777    
    739778    def changed(self): 
Note: See TracChangeset for help on using the changeset viewer.