Changeset 8cebf9b in sasview for guitools


Ignore:
Timestamp:
Apr 2, 2008 9:34:34 AM (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:
2da23bc
Parents:
e2914b1
Message:

problem with log scale

Location:
guitools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • guitools/PlotPanel.py

    re2914b1 r8cebf9b  
    364364    def _onEVT_FUNC_PROPERTY(self): 
    365365        """ 
    366              Receive the scale from myDialog and set the scale 
     366             Receive the x and y transformation from myDialog,Transforms x and y in View 
     367              and set the scale     
    367368        """  
    368369        list =[] 
     
    372373                if self.prevXtrans == "x^(2)": 
    373374                    item.transform_x(  self.fromX2, self.errFuncfromX2 ) 
    374                 #elif self.prevXtrans == "Log(x)" 
    375                     #item.transform_x(  self.fromLogXY,self.errFuncfromX2 ) 
    376                 print "Values of  x",item.x[0:5] 
    377                 print "Values of view x",item.view.x[0:5] 
     375                 
     376                item.transform_x(  self.toX, self.errFunctoX ) 
    378377                self.set_xscale("linear") 
    379378                self.graph.xaxis('\\rm{q} ', 'A^{-1}') 
    380379                 
    381380            if ( self.xscales=="x^(2)" ): 
    382                 #if self.prevXtrans == "Log(x)": 
    383                     #item.transform_x(  self.fromLogXY, self.errFunc ) 
    384381                if  self.prevXtrans != "x^(2)": 
    385382                    item.transform_x(  self.toX2, self.errFuncToX2 ) 
    386                     print "Values of  x",item.x[0:5] 
    387                     print "Values of view x^(2)",item.view.x[0:5] 
     383                item.transform_x(  self.toX, self.errFunctoX ) 
    388384                self.set_xscale('linear') 
    389385                self.graph.xaxis('\\rm{q^{2}} ', 'A^{-2}') 
    390386                 
    391387            if (self.xscales=="Log(x)" ): 
    392                 if self.prevXtrans == "x^(2)": 
    393                     item.transform_x(  self.fromX2, self.errFuncfromX2 ) 
    394                 #elif self.prevXtrans == "Log(x)": 
    395                     #item.transform_x(  self.toLogXY, self.errFunc ) 
    396                 #self.set_xscale("linear") 
    397                 self.set_xscale('log') 
    398                 self.graph.xaxis('\\rm{log(q)} ', 'A^{-1}') 
     388                #if self.prevXtrans == "x^(2)": 
     389                   # item.transform_x(  self.fromX2, self.errFuncfromX2 ) 
     390                 
     391#                item.transform_x(  self.toX, self.errFuncToLogX ) 
     392                self.set_xscale("log") 
     393                self.graph.xaxis('\\rm{q} ', 'A^{-1}') 
    399394                 
    400395            if ( self.yscales=="y" ): 
    401396                if self.prevYtrans == "y^(2)": 
    402397                    item.transform_y(  self.toX2, self.errFuncToX2 ) 
    403                 #elif self.prevXtrans == "Log(y)" 
    404                     #item.transform_y(  self.fromLogXY.errFunc )    
     398                item.transform_x(  self.toX, self.errFunctoX ) 
    405399                self.set_yscale("linear") 
    406400                self.graph.yaxis("\\rm{Intensity} ","cm^{-1}") 
     
    409403                if self.prevYtrans == "y^(2)": 
    410404                     item.transform_y(  self.fromX2, self.errFuncfromX2 ) 
    411                 #elif self.prevYtrans != "Log(y)": 
    412                     #item.transform_y(  self.toLogXY, self.errFunc ) 
    413                 #self.set_yscale("linear")   
     405                item.transform_x(  self.toX, self.errFuncToLogX) 
    414406                self.set_yscale("log")   
    415407                self.graph.yaxis("\\rm{Intensity} ","cm^{-1}") 
    416408                 
    417409            if ( self.yscales=="y^(2)" ): 
    418                  #if self.prevYtrans == "Log(y)": 
    419                        #item.transform_y(  self.fromLogXY, self.errFunc ) 
    420410                if self.prevYtrans != "y^(2)": 
    421                      item.transform_y(  self.toX2, self.errFuncToX2 )    
     411                     item.transform_y(  self.toX2, self.errFuncToX2 )   
     412                item.transform_x(  self.toX, self.errFunctoX )     
    422413                self.set_yscale("linear") 
    423414                self.graph.yaxis("\\rm{Intensity^{2}} ","cm^{-2}") 
     
    429420        self.graph.render(self) 
    430421        self.subplot.figure.canvas.draw_idle() 
    431          
     422    def errFunctoX(self,x,dx=None): 
     423        """ 
     424            calculate error of x**2 
     425            @param x: float value 
     426            @param dx: float value 
     427        """ 
     428        if dx >=x: 
     429            return 0.9*x 
     430        return dx 
    432431    def errFuncToX2(self,x,dx=None): 
    433432        """ 
     
    437436        """ 
    438437        if not dx == None: 
    439             return 2*x*dx 
     438            err = 2*x*dx 
     439            if err >= x: 
     440                err = 0.9*x 
     441            return err 
    440442        else: 
    441             raise ValueError, "Can't  calculate the error" 
     443            return 0.0 
    442444    def errFuncfromX2(self,x,dx=None): 
    443445        """ 
     
    447449        """ 
    448450        if (x > 0) and (dx != None): 
    449             err= dx/2*math.sqrt(x) 
    450              
     451            err = dx/(2*math.sqrt(x)) 
     452            if err >= x: 
     453                err = 0.9*x 
     454            return err 
     455        elif x==0.0: 
     456            err = 0.9*x 
     457            return err 
    451458        else: 
    452             raise ValueError, "Can't  calculate the error" 
     459            return 0.0 
     460         
    453461    def errFuncToLogX(self,x,dx=None): 
    454462        """ 
     
    457465            @param dx: float value 
    458466        """ 
    459         if (x!=0) and ( dx != None): 
     467        if (x != 0) and ( dx != None): 
    460468            err= dx/x 
    461469            if err >= x: 
     
    463471            return err 
    464472        elif x==0: 
    465             raise ValueError, "On calculate error: Can't divide by zero" 
     473            err = 0.9*x 
     474            return err 
    466475        else: 
    467             raise ValueError, "Can't  calculate the error" 
     476            return 0 
    468477         
    469478    def errFuncfromLogXY(self,x,dx=None): 
     
    478487                err = 0.9*x 
    479488            return err 
     489        elif x == 0 : 
     490            err = 0.9*x 
     491            return err  
     492        elif dx == None: 
     493            return 0 
    480494        else: 
    481495            raise ValueError, "Can't  calculate the error" 
  • guitools/plottables.py

    re2914b1 r8cebf9b  
    337337        self.view = View() 
    338338    def set_View(self,x,y): 
     339        """ Load View  """ 
    339340        self.x= x 
    340341        self.y = y 
    341          
    342342        self.reset_view() 
    343343         
    344344    def reset_view(self): 
     345        """ Reload view with new value to plot""" 
    345346        self.view = self.View(self.x, self.y, self.dx, self.dy) 
    346347     
Note: See TracChangeset for help on using the changeset viewer.