Changeset 3ae70f9 in sasview for src/sas/qtgui/Perspectives
- Timestamp:
- Sep 17, 2018 10:17:08 AM (6 years ago)
- Branches:
- ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- 5990185
- Parents:
- 9f4eaeb
- Location:
- src/sas/qtgui/Perspectives/Fitting
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py
r305114c r3ae70f9 571 571 return residuals 572 572 573 def plotPolydispersities(model, disp_models): 574 plots = [] 575 if model is None: 576 return plots 577 # test for model being a sasmodels.sasview_model.SasviewModel? 578 for name, pars in model.dispersion.items(): 579 if 0 == pars['width']: 580 continue # no actual polydispersity 581 disp_args = pars.copy() 582 disp_type = disp_args.pop('type', None) 583 if disp_type is None: 584 continue # show an error? "poly type ... not found" 585 disp_func = disp_models[disp_type](**disp_args) 586 center = model.params[name] 587 # same as in sasmodels.weights.Dispersion 588 lb = center - disp_args['nsigmas']*disp_args['width']*center 589 ub = center + disp_args['nsigmas']*disp_args['width']*center 590 arr = disp_func.get_weights(center, lb, ub, relative = True) 591 # create Data1D as in residualsData1D() and fill x/y members 592 # similar to FittingLogic._create1DPlot() but different data/axes 593 data1d = Data1D(x = arr[0], y = arr[1]) 594 data1d.xaxis('\\rm{{{}}} '.format(name.replace('_', '\_')), 'A') # correct unit? 595 data1d.yaxis('\\rm{{{weight}}}', 'normalized') 596 data1d.scale = 'linear' 597 data1d.symbol = 'Line' 598 data1d.name = "{} polydispersity".format(name) 599 data1d.id = data1d.name # placeholder, has to be completed later 600 data1d.plot_role = Data1D.ROLE_DELETABLE 601 plots.append(data1d) 602 return plots 603 573 604 def binary_encode(i, digits): 574 605 return [i >> d & 1 for d in range(digits)] -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
r305114c r3ae70f9 2435 2435 new_plots.append(residuals) 2436 2436 2437 model = return_data.get('model', None) 2438 for plot in FittingUtilities.plotPolydispersities( 2439 model, POLYDISPERSITY_MODELS): 2440 data_id = fitted_data.id.split() 2441 plot.id = " ".join([data_id[0], plot.name] + data_id[1:]) 2442 data_name = fitted_data.name.split() 2443 plot.name = " ".join([data_name[0], plot.name] + data_name[1:]) 2444 self.createNewIndex(plot) 2445 new_plots.append(plot) 2446 2437 2447 if self.data_is_loaded: 2438 # delete any plots associated with the data that were not updated (e.g. to remove beta(Q), S_eff(Q)) 2448 # delete any plots associated with the data that were not updated 2449 # (e.g. to remove beta(Q), S_eff(Q)) 2439 2450 GuiUtils.deleteRedundantPlots(self.all_data[self.data_index], new_plots) 2440 2451 pass 2441 2452 else: 2442 # delete theory items for the model, in order to get rid of any redundant items, e.g. beta(Q), S_eff(Q) 2453 # delete theory items for the model, in order to get rid of any 2454 # redundant items, e.g. beta(Q), S_eff(Q) 2443 2455 self.communicate.deleteIntermediateTheoryPlotsSignal.emit(self.kernel_module.id) 2444 2456
Note: See TracChangeset
for help on using the changeset viewer.