Changeset f193585 in sasview for guitools/PlotPanel.py
- Timestamp:
- Apr 28, 2008 3:48:59 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:
- 6ed101a
- Parents:
- 9e8dc22
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guitools/PlotPanel.py
r8035b82 rf193585 10 10 import transform 11 11 from canvas import FigureCanvas 12 from matplotlib.widgets import RectangleSelector 13 from pylab import gca, gcf 14 12 15 #TODO: make the plottables interactive 13 16 … … 49 52 sizer.Add(self.canvas,1,wx.EXPAND) 50 53 self.SetSizer(sizer) 51 54 52 55 # Graph object to manage the plottables 53 56 self.graph = Graph() … … 88 91 if len(list.keys())>0: 89 92 first_item = list.keys()[0] 90 #print first_item, list[first_item].__class__.__name__91 93 dlg = LinearFit( None, first_item, self.onFitDisplay,self.returnTrans, -1, 'Fitting') 92 94 dlg.ShowModal() … … 172 174 173 175 174 176 177 178 def onselect(self,event1, event2): 179 print"went here" 180 from matplotlib.widgets import RectangleSelector 181 from pylab import show, gca, gcf 182 183 'event1 and event2 are the press and release events' 184 x1, y1 = event1.xdata, event1.ydata 185 x2, y2 = event2.xdata, event2.ydata 186 print "(%3.2f, %3.2f) --> (%3.2f, %3.2f)"%(x1,y1,x2,y2) 187 print " The button you used were: ",event1.button, event2.button 188 gca().set_xlim([x1,x2]) 189 gca().set_ylim([y1,y2]) 190 gcf().canvas.draw_idle() 191 192 # drawtype is 'box' or 'line' or 'none' 193 LS = RectangleSelector(self.subplot, onselect,drawtype='box',useblit=True) 194 show() 195 196 197 198 175 199 def onSaveImage(self, evt): 176 200 #figure.savefig … … 241 265 self.subplot.clear() 242 266 self.subplot.hold(True) 243 244 267 245 268 def render(self): 246 269 """Commit the plot after all objects are drawn""" … … 330 353 list =[] 331 354 list = self.graph.returnPlottable() 355 332 356 for item in list: 357 item.getTransform(self.xscales,self.yscales) 333 358 if ( self.xscales=="x" ): 334 item.transform_x( transform.toX,transform.errToX ) 359 item.returnTransformationx(transform.toX,transform.errToX) 360 335 361 self.set_xscale("linear") 336 362 name, units = item.get_xaxis() … … 338 364 339 365 if ( self.xscales=="x^(2)" ): 340 item. transform_x( transform.toX2,transform.errToX2)366 item.returnTransformationx(transform.toX2,transform.errToX2) 341 367 self.set_xscale('linear') 342 368 name, units = item.get_xaxis() … … 344 370 345 371 if (self.xscales=="log10(x)" ): 346 item. transform_x( transform.toX, transform.errToX)372 item.returnTransformationx(transform.toX,transform.errToX) 347 373 self.set_xscale("log") 348 name, units = item.get_xaxis() 349 item.check_data_PlottableX() 374 name, units = item.get_xaxis() 350 375 self.graph.xaxis("Log10 %s" % name, "%s^{-1}" % units) 351 376 352 377 if ( self.yscales=="ln(y)" ): 353 item.transform_y( transform.toLogX, transform.errToLogX ) 354 self.set_yscale("linear") 355 name, units = item.get_yaxis() 378 item.returnTransformationy(transform.toLogX,transform.errToLogX) 379 self.set_yscale("linear") 380 name, units = item.get_yaxis() 381 item.check_data_PlottableY() 356 382 self.graph.yaxis("log %s" % name, "%s^{-1}" % units) 357 383 358 384 if ( self.yscales=="y" ): 359 item. transform_y( transform.toX, transform.errToX)385 item.returnTransformationy(transform.toX,transform.errToX) 360 386 self.set_yscale("linear") 361 387 name, units = item.get_yaxis() … … 363 389 364 390 if ( self.yscales=="log10(y)" ): 365 item.transform_y( transform.toX, transform.errToLogX) 391 item.returnTransformationy(transform.toX,transform.errToX) 392 item.check_data_PlottableY() 366 393 self.set_yscale("log") 367 394 name, units = item.get_yaxis() 395 self.graph.yaxis("Log10 %s" % name, "%s^{-1}" % units) 396 397 if ( self.yscales=="y^(2)" ): 398 item.returnTransformationy( transform.toX2,transform.errToX2 ) 399 self.set_yscale("linear") 400 name, units = item.get_yaxis() 401 self.graph.yaxis("%s^2" % name, "%s^{-2}" % units) 402 403 if ( self.yscales =="1/y"): 404 item.returnTransformationy(transform.toOneOverX,transform.errOneOverX ) 405 self.set_yscale("linear") 406 name, units = item.get_yaxis() 407 self.graph.yaxis("%s" % name, "%s" % units) 408 409 if ( self.yscales =="1/sqrt(y)" ): 410 item.returnTransformationy(transform.toOneOverSqrtX,transform.errOneOverSqrtX ) 411 self.set_yscale("linear") 412 name, units = item.get_yaxis() 368 413 item.check_data_PlottableY() 369 self.graph.yaxis("Log10 %s" % name, "%s^{-1}" % units)370 371 if ( self.yscales=="y^(2)" ):372 item.transform_y( transform.toX2, transform.errToX2 )373 self.set_yscale("linear")374 name, units = item.get_yaxis()375 self.graph.yaxis("%s^2" % name, "%s^{-2}" % units)376 377 if ( self.yscales =="1/y"):378 item.transform_y( transform.toOneOverX , transform.errOneOverX )379 self.set_yscale("linear")380 name, units = item.get_yaxis()381 self.graph.yaxis("%s" % name, "%s" % units)382 383 if ( self.yscales =="1/sqrt(y)" ):384 item.transform_y( transform.toOneOverSqrtX ,transform.errOneOverSqrtX )385 self.set_yscale("linear")386 name, units = item.get_yaxis()387 414 self.graph.yaxis("%s" %name, "%s" % units) 388 415 389 416 if ( self.yscales =="ln(y*x)"): 390 item. transform_y( transform.toLogXY ,transform.errToLogXY)417 item.returnTransformationy( transform.toLogXY,transform.errToLogXY) 391 418 self.set_yscale("linear") 392 419 yname, yunits = item.get_yaxis() … … 395 422 396 423 if ( self.yscales =="ln(y*x^(2))"): 397 item. transform_y( transform.toLogYX2 ,transform.errToLogYX2)424 item.returnTransformationy( transform.toLogYX2,transform.errToLogYX2) 398 425 self.set_yscale("linear") 399 426 yname, yunits = item.get_yaxis() 400 427 xname, xunits = item.get_xaxis() 428 item.check_data_PlottableY() 401 429 self.graph.yaxis("Log %s%s^{2}" % (yname,xname), "%s^{-1}%s^{-2}" % (yunits,xunits)) 402 430 403 431 if ( self.yscales =="ln(y*x^(4))"): 404 item. transform_y( transform.toLogYX4 ,transform.errToLogYX4)432 item.returnTransformationy(transform.toLogYX4,transform.errToLogYX4) 405 433 self.set_yscale("linear") 406 434 yname, yunits = item.get_yaxis() … … 409 437 410 438 if ( self.viewModel == "Guinier lny vs x^(2)"): 411 412 item.transform_x( transform.toX2,transform.errToX2 ) 439 item.returnTransformationx(transform.toX2,transform.errToX2) 413 440 self.set_xscale('linear') 414 441 name, units = item.get_xaxis() 415 442 self.graph.xaxis("%s^{2}" % name, "%s^{-2}" % units) 416 417 item.transform_y( transform.toLogX, transform.errToLogX ) 443 item.returnTransformationy(transform.toLogX,transform.errToLogX ) 418 444 self.set_yscale("linear") 419 445 name, units = item.get_yaxis() 420 446 self.graph.yaxis("$Log %s$" % name, "%s^{-1}" % units) 447 421 448 #item.name = self.yscales+" vs " +self.xscales 422 449 self.prevXtrans = self.xscales 423 450 self.prevYtrans = self.yscales 424 451 item.transformView() 425 452 self.graph.render(self) 426 453 self.subplot.figure.canvas.draw_idle() 427 454 428 def onFitDisplay(self, plottable ,xmin,xmax):455 def onFitDisplay(self, plottable): 429 456 """ 430 457 Add a new plottable into the graph .In this case this plottable will be used … … 432 459 @param plottable: the plottable to plot 433 460 """ 434 list =[]435 tempx=[]436 tempy=[]437 tempdx=[]438 tempdy=[]439 #Stored plotted plottable in a new plottable440 list = self.graph.returnPlottable()441 if len(list.keys())>0:442 for item in list:443 if self.graph.isPlotted(item)== True:444 x,y,dx,dy = item.returnValuesOfView()445 if((min(x) < xmin )and( max(x) > xmax ))\446 or ((min(x) <= xmin )and( max(x) > xmax ))\447 or((min(x) < xmin )and( max(x) >= xmax )):448 print"went here"449 item.reducedXrange(xmin,xmax)450 else:451 item.originalXrange()452 453 454 461 #Add the data to fit 455 plottable.reset_view()462 456 463 self.graph.add(plottable) 457 464 self.graph.render(self) … … 459 466 self.subplot.figure.canvas.draw_idle() 460 467 self.graph.delete(plottable) 461 462 463 464 468 469 470 465 471 class NoRepaintCanvas(FigureCanvasWxAgg): 466 472 """We subclass FigureCanvasWxAgg, overriding the _onPaint method, so that
Note: See TracChangeset
for help on using the changeset viewer.