Changeset f52bea1 in sasview for guitools/PlotPanel.py
- Timestamp:
- Apr 8, 2008 5:04:51 PM (16 years ago)
- 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:
- 3d3a0e5
- Parents:
- 8742751
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guitools/PlotPanel.py
rd490a02 rf52bea1 58 58 self.symbollist = ['o','x','^','v','<','>','+','s','d','D','h','H','p'] 59 59 #User scale 60 self.xscales =" "61 self.yscales =" "60 self.xscales ="x" 61 self.yscales ="Log(y)" 62 62 # keep track if the previous transformation of x and y in Property dialog 63 63 self.prevXtrans =" " 64 64 self.prevYtrans =" " 65 def returnTrans(self): 66 return self.xscales,self.yscales 65 67 66 68 def setTrans(self,xtrans,ytrans): … … 83 85 first_item = list.keys()[0] 84 86 #print first_item, list[first_item].__class__.__name__ 85 dlg = LinearFit( None, first_item, self.onFitDisplay, -1, 'Fitting')87 dlg = LinearFit( None, first_item, self.onFitDisplay,self.returnTrans, -1, 'Fitting') 86 88 dlg.ShowModal() 87 89 … … 125 127 else: 126 128 return math.sqrt(x) 127 129 def toLogX(self,x): 130 """ 131 This function is used to load value on Plottable.View 132 calculate log x 133 @param x: float value 134 """ 135 if not x > 0: 136 raise ValueError, "Log(X)of a negative value " 137 else: 138 return math.log(x) 139 140 def toOneOverX(self,x): 141 if x !=0: 142 return 1/x 143 else: 144 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" 150 def toLogYX2(self): 151 if y*(x**2) >0: 152 return math.log(y*(x**2)) 153 else: 154 raise ValueError,"cannot be computed" 128 155 def toLogXY(self,x,y): 129 156 """ … … 371 398 for item in list: 372 399 if ( self.xscales=="x" ): 373 item.transform_x( self.toX, self.err FunctoX )400 item.transform_x( self.toX, self.errToX ) 374 401 self.set_xscale("linear") 375 self.graph.xaxis('\\rm{q} ', 'A^{-1}') 402 name, units = item.get_xaxis() 403 self.graph.xaxis("%s" % name, "%s^{-1}" % units) 376 404 377 405 if ( self.xscales=="x^(2)" ): 378 item.transform_x( self.toX2, self.err FuncToX2 )406 item.transform_x( self.toX2, self.errToX2 ) 379 407 self.set_xscale('linear') 380 self.graph.xaxis('\\rm{q^{2}} ', 'A^{-2}') 408 name, units = item.get_xaxis() 409 self.graph.xaxis("%s^{2}" % name, "%s^{-2}" % units) 381 410 382 411 if (self.xscales=="Log(x)" ): 383 item.transform_x( self.toX, self.err FuncToLogX )412 item.transform_x( self.toX, self.errToLogX ) 384 413 self.set_xscale("log") 385 self.graph.xaxis('\\rm{q} ', 'A^{-1}') 414 name, units = item.get_xaxis() 415 self.graph.xaxis("%s" % name, "%s^{-1}" % units) 386 416 387 417 if ( self.yscales=="y" ): 388 item.transform_y( self.toX, self.err FunctoX )418 item.transform_y( self.toX, self.errToX ) 389 419 self.set_yscale("linear") 390 self.graph.yaxis("\\rm{Intensity} ","cm^{-1}") 420 name, units = item.get_yaxis() 421 self.graph.yaxis("%s" % name, "%s^{-1}" % units) 391 422 392 423 if ( self.yscales=="Log(y)" ): 393 item.transform_y( self.toX, self.err FuncToLogX)424 item.transform_y( self.toX, self.errToLogX) 394 425 self.set_yscale("log") 395 self.graph.yaxis("\\rm{Intensity} ","cm^{-1}") 426 name, units = item.get_yaxis() 427 self.graph.yaxis("%s" % name, "%s^{-1}" % units) 396 428 397 429 if ( self.yscales=="y^(2)" ): 398 item.transform_y( self.toX2, self.err FuncToX2 )430 item.transform_y( self.toX2, self.errToX2 ) 399 431 self.set_yscale("linear") 400 self.graph.yaxis("\\rm{Intensity^{2}} ","cm^{-2}") 432 name, units = item.get_yaxis() 433 self.graph.yaxis("%s^2" % name, "%s^{-2}" % units) 401 434 402 435 self.prevXtrans = self.xscales … … 405 438 self.graph.render(self) 406 439 self.subplot.figure.canvas.draw_idle() 407 def errFunctoX(self,x,dx=None): 440 441 def errToX(self,x,dx=None): 408 442 """ 409 443 calculate error of x**2 … … 411 445 @param dx: float value 412 446 """ 413 if math.fabs(dx) >= math.fabs(x):447 if (dx != None) and (math.fabs(dx) >= math.fabs(x)): 414 448 return math.fabs(0.9*x) 415 449 if dx==None: 416 450 return 0 417 451 return math.fabs(dx) 418 def errFuncToX2(self,x,dx=None): 452 453 def errToX2(self,x,dx=None): 419 454 """ 420 455 calculate error of x**2 … … 429 464 else: 430 465 return 0.0 431 def errF uncfromX2(self,x,dx=None):466 def errFromX2(self,x,dx=None): 432 467 """ 433 468 calculate error of sqrt(x) … … 447 482 return math.fabs(err) 448 483 449 def err FuncToLogX(self,x,dx=None):484 def errToLogX(self,x,dx=None): 450 485 """ 451 486 calculate error of Log(xy) … … 466 501 return math.fabs(err) 467 502 468 def err FuncfromLogXY(self,x,dx=None):503 def errToLogXY(self,x,y,dx=None, dy=None): 469 504 """ 470 505 calculate error of Log(xy) 471 @param x: float value 472 @param dx: float value 473 """ 474 return 475 476 506 """ 507 if dx==None: 508 err = x*(dy**2)/y 509 elif dy==None: 510 err = y*(dx**2)/x 511 elif (x!=0) and (y!=0): 512 err = y*(dx**2)/x + x*(dy**2)/y 513 if err >= 0: 514 if math.sqrt(err)> x: 515 err= 0.9*x 516 return math.sqrt(err) 517 else: 518 raise ValueError, "cannot compute this error" 519 477 520 def onFitDisplay(self, plottable): 478 521 """ … … 484 527 self.graph.add(plottable) 485 528 self.graph.render(self) 529 self.graph.delete(plottable) 486 530 self.subplot.figure.canvas.draw_idle() 487 531
Note: See TracChangeset
for help on using the changeset viewer.