- Timestamp:
- Feb 17, 2015 8:45:34 AM (10 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:
- 54b9ad2
- Parents:
- 66e579f (diff), 400155b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- src/sas
- Files:
-
- 65 added
- 10 deleted
- 8 edited
- 28 moved
Legend:
- Unmodified
- Added
- Removed
-
src/sas/dataloader/data_info.py
rb3efb7d r7eaf9f2 25 25 import numpy 26 26 import math 27 28 29 class plottable_sesans1D: 30 """ 31 SESANS is a place holder for 1D SESANS plottables. 32 33 #TODO: This was directly copied from the plottables_1D. 34 #TODO: The class has not been updated from there. 35 """ 36 # The presence of these should be mutually 37 # exclusive with the presence of Qdev (dx) 38 x = None 39 y = None 40 dx = None 41 dy = None 42 ## Slit smearing length 43 dxl = None 44 ## Slit smearing width 45 dxw = None 46 47 # Units 48 _xaxis = '' 49 _xunit = '' 50 _yaxis = '' 51 _yunit = '' 52 53 def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None): 54 self.x = numpy.asarray(x) 55 self.y = numpy.asarray(y) 56 if dx is not None: 57 self.dx = numpy.asarray(dx) 58 if dy is not None: 59 self.dy = numpy.asarray(dy) 60 if dxl is not None: 61 self.dxl = numpy.asarray(dxl) 62 if dxw is not None: 63 self.dxw = numpy.asarray(dxw) 64 65 def xaxis(self, label, unit): 66 """ 67 set the x axis label and unit 68 """ 69 self._xaxis = label 70 self._xunit = unit 71 72 def yaxis(self, label, unit): 73 """ 74 set the y axis label and unit 75 """ 76 self._yaxis = label 77 self._yunit = unit 27 78 28 79 … … 940 991 941 992 993 class SESANSData1D(plottable_sesans1D, DataInfo): 994 """ 995 SESANS 1D data class 996 """ 997 x_unit = '1/A' 998 y_unit = '1/cm' 999 1000 def __init__(self, x, y, dx=None, dy=None): 1001 DataInfo.__init__(self) 1002 plottable_sesans1D.__init__(self, x, y, dx, dy) 1003 1004 def __str__(self): 1005 """ 1006 Nice printout 1007 """ 1008 _str = "%s\n" % DataInfo.__str__(self) 1009 1010 _str += "Data:\n" 1011 _str += " Type: %s\n" % self.__class__.__name__ 1012 _str += " X-axis: %s\t[%s]\n" % (self._xaxis, self._xunit) 1013 _str += " Y-axis: %s\t[%s]\n" % (self._yaxis, self._yunit) 1014 _str += " Length: %g\n" % len(self.x) 1015 1016 return _str 1017 1018 def is_slit_smeared(self): 1019 """ 1020 Check whether the data has slit smearing information 1021 1022 :return: True is slit smearing info is present, False otherwise 1023 1024 """ 1025 def _check(v): 1026 if (v.__class__ == list or v.__class__ == numpy.ndarray) \ 1027 and len(v) > 0 and min(v) > 0: 1028 return True 1029 1030 return False 1031 1032 return _check(self.dxl) or _check(self.dxw) 1033 1034 def clone_without_data(self, length=0, clone=None): 1035 """ 1036 Clone the current object, without copying the data (which 1037 will be filled out by a subsequent operation). 1038 The data arrays will be initialized to zero. 1039 1040 :param length: length of the data array to be initialized 1041 :param clone: if provided, the data will be copied to clone 1042 """ 1043 from copy import deepcopy 1044 1045 if clone is None or not issubclass(clone.__class__, Data1D): 1046 x = numpy.zeros(length) 1047 dx = numpy.zeros(length) 1048 y = numpy.zeros(length) 1049 dy = numpy.zeros(length) 1050 clone = Data1D(x, y, dx=dx, dy=dy) 1051 1052 clone.title = self.title 1053 clone.run = self.run 1054 clone.filename = self.filename 1055 clone.instrument = self.instrument 1056 clone.notes = deepcopy(self.notes) 1057 clone.process = deepcopy(self.process) 1058 clone.detector = deepcopy(self.detector) 1059 clone.sample = deepcopy(self.sample) 1060 clone.source = deepcopy(self.source) 1061 clone.collimation = deepcopy(self.collimation) 1062 clone.trans_spectrum = deepcopy(self.trans_spectrum) 1063 clone.meta_data = deepcopy(self.meta_data) 1064 clone.errors = deepcopy(self.errors) 1065 1066 return clone 1067 1068 942 1069 class Data2D(plottable_2D, DataInfo): 943 1070 """ -
src/sas/dataloader/manipulations.py
r79492222 r400155b 582 582 """ 583 583 #Todo: remove center. 584 def __init__(self, r_min=0, r_max=0, center_x=0, center_y=0, nbins= 20):584 def __init__(self, r_min=0, r_max=0, center_x=0, center_y=0, nbins=36): 585 585 # Minimum radius 586 586 self.r_min = r_min … … 593 593 # Number of angular bins 594 594 self.nbins_phi = nbins 595 595 596 596 597 def __call__(self, data2D): … … 622 623 phi_values = numpy.zeros(self.nbins_phi) 623 624 phi_err = numpy.zeros(self.nbins_phi) 624 625 626 # Shift to apply to calculated phi values in order to center first bin at zero 627 phi_shift = Pi / self.nbins_phi 628 625 629 for npt in range(len(data)): 626 630 frac = 0 … … 637 641 continue 638 642 # binning 639 i_phi = int(math.floor((self.nbins_phi) * phi_value/ (2 * Pi)))643 i_phi = int(math.floor((self.nbins_phi) * (phi_value+phi_shift) / (2 * Pi))) 640 644 641 645 # Take care of the edge case at phi = 2pi. 642 if i_phi == self.nbins_phi:643 i_phi = self.nbins_phi - 1646 if i_phi >= self.nbins_phi: 647 i_phi = 0 644 648 phi_bins[i_phi] += frac * data[npt] 645 649 … … 655 659 phi_bins[i] = phi_bins[i] / phi_counts[i] 656 660 phi_err[i] = math.sqrt(phi_err[i]) / phi_counts[i] 657 phi_values[i] = 2.0 * math.pi / self.nbins_phi * (1.0 * i + 0.5)661 phi_values[i] = 2.0 * math.pi / self.nbins_phi * (1.0 * i) 658 662 659 663 idx = (numpy.isfinite(phi_bins)) -
src/sas/guiframe/local_perspectives/data_loader/data_loader.py
rb3efb7d rb45cde3 233 233 error_message += "Make sure the content of your file" 234 234 error_message += " is properly formatted.\n\n" 235 error_message += "When contacting the DANSEteam, mention the"235 error_message += "When contacting the SasView team, mention the" 236 236 error_message += " following:\n%s" % str(error) 237 237 elif data_error: -
src/sas/guiframe/local_perspectives/plotting/AnnulusSlicer.py
r79492222 r400155b 35 35 36 36 ## Number of points on the plot 37 self.nbins = 2037 self.nbins = 36 38 38 #Cursor position of Rings (Left(-1) or Right(1)) 39 39 self.xmaxd = self.base.data2D.xmax … … 131 131 math.fabs(self.outer_circle.get_radius())) 132 132 #if the user does not specify the numbers of points to plot 133 # the default number will be nbins= 20133 # the default number will be nbins= 36 134 134 if nbins == None: 135 self.nbins = 20135 self.nbins = 36 136 136 else: 137 137 self.nbins = nbins -
src/sas/perspectives/calculator/data_editor.py
r79492222 rb45cde3 46 46 47 47 if error is not None: 48 message += "When contacting the DANSEteam,"48 message += "When contacting the SasView team," 49 49 message += " mention the following:\n%s" % str(error) 50 50 -
src/sas/guiframe/media/data_explorer_help.rst
r0d66541 r23a9beb 1 .. data_explorer_help.rst1 .. data_explorer_help.rst 2 2 3 Placeholder for data explorer help 3 .. This is a port of the original SasView html help file to ReSTructured text 4 .. by S King, ISIS, during SasView CodeCamp-III in Feb 2015. 5 6 Loading Data 7 ============ 8 9 Introduction_ 10 11 Load_Data_ 12 13 Handy_Menu_ 14 15 Activate_Data_ 16 17 Remove_Data_ 18 19 Append_Plot_to_Graph_ 20 21 Create_New_Plot_ 22 23 Freeze_Theory_ 24 25 Send_Data_to_Applications_ 26 27 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 28 29 .. _Introduction: 30 31 Introduction 32 ------------ 33 34 *Data Explorer* is a panel that allows the user more interactions with data. 35 Some functionalities provided by the Data Explorer are also available through 36 the context menu of plot panels or other menus of the applications.Under menu 37 *View* of the menubar, Data explorer can be toggled between Show and Hide by 38 clicking the menu *Show/Hide Data Explorer* . 39 40 *IMPORTANT!* When Data explorer is hidden, all the data loaded will be sent 41 directly to the current active application, if possible. When data Explorer is 42 shown data go first to the Data Explorer for the user to handle them later. 43 44 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 45 46 .. _Load_Data: 47 48 Load Data 49 --------- 50 51 To Load data, click the button *Load Data* , then select one or more (holding 52 Ctrl key) files to load into the application. In the list, the *Data* will be 53 displayed as the name of each selected file. Expending this data by clicking 54 the *+* symbol will display available information about the data such as data 55 title if exists. 56 57 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 58 59 .. _Handy_Menu: 60 61 Handy Menu 62 ---------- 63 64 For a quick Data-info/Save/Plot/3d-plot(2d only)/Edit-mask(2d only), 65 high-light the data/theory, right-click, and select a proper item from the 66 context menu. 67 68 .. image:: hand_menu.png 69 70 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 71 72 .. _Activate_Data: 73 74 Activate Data 75 ------------- 76 77 To interact with data, check a data label and click on a button. Checking Data 78 make them active for the button operation. Unchecking Data labels will 79 deactivate them. 80 81 There is a combo box labeled *Selection Options* that allows to activate or 82 select multiple data simultaneously. 83 84 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 85 86 .. _Remove_Data: 87 88 Remove Data 89 ----------- 90 91 Remove data button remove all reference of this data into the application. 92 93 *WARNING!* Remove data will stop any jobs currently using the selected data. 94 95 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 96 97 .. _Append_Plot_to_Graph: 98 99 Append Plot to Graph 100 -------------------- 101 102 Click on the button *Append To* to append selected Data to a plot panel on 103 focus. Next to this button is a combo box containing available panels names. 104 Selecting a name from this combo box will set the corresponding lot panel on 105 focus. If not plot panel is available, the combo box and button will be 106 disable. 2D Data cannot be appended to any plot panels . This operation can 107 only be performed on 1D data and plot panels currently containing 1D data. 108 109 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 110 111 .. _Create_New_Plot: 112 113 Create New Plot 114 --------------- 115 116 Click on *New Plot* button to create a new plot panel where selected data 117 will be plotted. 118 119 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 120 121 .. _Freeze_Theory: 122 123 Freeze Theory 124 ------------- 125 126 *Freeze Theory* button generate Data from selected theory. This operation can 127 only be performed when theory labels are selected. 128 129 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 130 131 .. _Send_Data_to_Applications: 132 133 Send to Application 134 ------------------- 135 136 Click on the button *Send To* to send Data to the current active control 137 page. One of the single/batch mode can be selected only for Fitting. The batch 138 mode provides serial (batch) fitting with one model, i.e., fitting one data by 139 another data. Note that only the Fitting allows more that one data to be sent. -
src/sas/guiframe/media/graph_help.rst
r0d66541 r98b30b4 1 ..graph_help.rst 2 3 Placeholder for graph help 1 .. graph_help.rst 2 3 .. This is a port of the original SasView html help file to ReSTructured text 4 .. by S King, ISIS, during SasView CodeCamp-III in Feb 2015. 5 6 Plotting Data/Models 7 ==================== 8 9 Graph_Menu_ 10 11 2D_Data_Averaging_ 12 13 Key_Sequences_ 14 15 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 16 17 .. _Graph_Menu: 18 19 Graph Menu 20 ---------- 21 22 Invoking_the_Graph_Menu_ 23 24 Reset_Graph_ 25 26 Hide_Show_Delete_Graph_ 27 28 Data_Info_ 29 30 Save_Plot_Image_ 31 32 Save_Data_ 33 34 Drag_Plot_ 35 36 Zoom_In_Out_ 37 38 Remove_Data_from_Plot_ 39 40 Change_Scale_ 41 42 Linear_Fit_ 43 44 Other_Graph_Modifications_ 45 46 .. _Invoking_the_Graph_Menu: 47 48 Introduction 49 ------------ 50 51 Locating the pointer and right-clicking on a data/theory plot will bring a 52 context menu. On the menu, select a menu item. 53 54 .. _Reset_Graph: 55 56 Reset Graph 57 ----------- 58 59 To reset the graph's axis range, right click on the plot and the context menu 60 pops-up. Select *Reset Graph* and the plot will take its initial range. Also 61 the 'home' icon in tool bar will do the same. 62 63 .. _Hide_Show_Delete_Graph: 64 65 Hide/Show/Delete Graph 66 ---------------------- 67 68 To Hide, click the Hide (bar) button in the tool bar.To Show, select the the 69 'Show' menu item in the 'Graph' menu in the menu bar.To Delete, click the 'x' 70 button in the title bar. 71 72 Note: If a residuals graph (in Fitting) is hidden, it will not show up after 73 computation. 74 75 .. _Data_Info: 76 77 Data Info 78 --------- 79 80 From the context menu, select 'Data Info' to see the data information dialog 81 panel. 82 83 .. _Save_Plot_Image: 84 85 Save Plot Image 86 --------------- 87 88 Right click on plot. Context menu will pop-up select save image [file name]. 89 A dialog window opens and write a the name of the file to save and click on 90 *Save Image.* 91 92 .. _Save_Data: 93 94 Save Data 95 --------- 96 97 From the context menu, select 'Save points as a file' for 1D, or 'Save as a 98 file(DAT)' for 2D. Note that two formats, txt and xml, are available in 1D 99 saving. 100 101 .. _Drag_Plot: 102 103 Drag Plot 104 --------- 105 106 Select the *crossed arrows* button on the plot panel *toolbar* to drag the 107 plot. To disable dragging mode, unselect the same button on the toolbar. 108 109 .. _Zoom_In_Out: 110 111 Zoom In/Out 112 ----------- 113 114 Select the *rectangle* button on the plot panel *toolbar* to zoom in a 115 region of the plot. 116 117 To disable zoom mode, unselect the same button on the toolbar. After zoom in 118 a region, select *left arrow* or *right arrow* button on the toolbar to set 119 the graph the the previous size. If a mouse wheel button is available, 120 *zoom in/out* by scrolling the mouse wheel (see Key_Sequences_ help for 121 details). 122 123 .. _Remove_Data_from_Plot: 124 125 Remove Data from Plot 126 --------------------- 127 128 Highlight the plot and the context menu appears.Select *remove [file name]*. 129 The plot selected will disappear. 130 131 .. _Change_Scale: 132 133 Change Scale 134 ------------ 135 136 If the loaded data is a 1-D data changing scale or data representation will 137 work as follows. *Right click* on the plot window. A context menu pops-up and 138 select *Change Scale* . A dialog window titled *select the scale of the graph* 139 will pop-up then change the *x* , the *y* and the *view* values as wish. 140 141 The 'view' option includes the axis scale short-cuts such as Linear, Guinier, 142 Cross-sectional (XC) Guinier, and Porod plot scale. For a proper data set, 143 these axis scales can be used to estimate Rg, Rod diameter, or Background of 144 neutron scattering data respectively (via 'Linear Fit'; see below). For a 2D 145 image, *Right click* on the image to pop-up the context menu. Select to 146 switch from linear to log scale. The scale selected is printed on the status 147 bar. 148 149 If the loaded data is an image. *Right click* on the image to pop-up the 150 context menu. Select to switch from linear to log scale. The scale selected is 151 printed on the status bar. 152 153 .. _Linear_Fit: 154 155 Linear Fit 156 ---------- 157 158 Linear fit is to perform a line model fitting keeping the scale of the plot. 159 Highlight data to fit. From the context menu select *Linear Fit* . A dialog 160 window appears. Change model initial parameters, data limits and hit *fit* 161 button. New parameters values are displayed and the line with the new 162 parameters is added to the plot. Especially for Guinier, XC Guinier, and 163 Porod plot scale, this 'Linear Fit' will provides Rg, Rod diameter, and 164 background, respectively. The following figure shows an example for the 165 Guinier scale. 166 167 .. image:: guinier_fit.png 168 169 .. _Other_Graph_Modifications: 170 171 Other Graph Modifications 172 ------------------------- 173 174 Some custom modifications of the symbols, text, axis, etc of the graph are 175 provided. 176 177 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 178 179 .. _2D_Data_Averaging: 180 181 2D Data Averaging 182 ----------------- 183 184 Principle_ 185 186 How_to_Average_ 187 188 Available_Averagings_ 189 190 Unmasked_Circular_Average_ 191 192 Masked_Circular_Average_ 193 194 Sector_Average_ 195 196 Annular_Average_ 197 198 Box_Sum_ 199 200 Box_Averaging_in_Qx_ 201 202 Box_Averaging_in_Qy_ 203 204 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 205 206 .. Principle: 207 208 Principle 209 --------- 210 211 This feature allows you to perform different types of averages on your data, 212 and allows you to see what regions of the detector will contribute to the 213 average. The region to be averaged will be drown and can be modified by 214 dragging the lines around. 215 216 .. _How_to_Average: 217 218 How to Average 219 -------------- 220 221 Right click on 2D data for the context menu to appear. Select one type of 222 averages among *"sector [Q view]", "Annulus [Phi view]", "Box sum", "Box 223 averaging in Qx ", "box averaging on Qy","Perform circular Average".* 224 225 A slicer will appear except for *"Perform circular Average"* that you can 226 drag by clicking on a slicer 's marker. When the marker is highlighted in red, 227 it means that the slicer can change size.You can also move some of the slicer 228 by simply drag its side when highlighted in red. the slicer size will be reset 229 to its previous size if the user try to select a region greater than the size 230 of the data. 231 232 The user can also select a region to average when a slicer has been selected 233 already by *right clicking* on the context menu and selecting *Edit Slicer 234 Parameters* . The dialog window will appears and the user can enter values to 235 selected a region or selected numbers of points to plot *nbins* . 236 237 For *Box sum* , when the user selects this option, a new panel is created 238 containing the result of average of the sum of every pixels contains on that 239 data.The user can also enter values to select a region. 240 241 .. _Available_Averagings: 242 243 Available Averagings 244 -------------------- 245 246 Some different types of averaging are provided for. 247 248 .. _Unmasked_Circular_Average: 249 250 Unmasked Circular Average 251 ------------------------- 252 253 This operation will perform and average in constant q-rings around the (x,y) pixel 254 location of the beam center. 255 256 .. _Masked_Circular_Average: 257 258 Masked Circular Average 259 ----------------------- 260 261 This operation is same as 'Masked Circular Average' except that the masked 262 region is excluded if masked. 263 264 .. _Sector_Average: 265 266 Sector Average [Q View] 267 ----------------------- 268 269 This operation averages in constant q-arcs. The width of the sector is specified in 270 degrees (+/- delta phi) each side of the central angle (phi). 271 272 .. _Annular_Average: 273 274 Annular Average [Phi View] 275 -------------------------- 276 277 It performs an average between two q-values centered in (0,0), and averaged 278 over a width of a specified number of pixels. The data is returned as a 279 function of angle (phi) in degrees. Moving one circle of this slicer to 280 radius of zero corresponding to a circular averaging on radius qmax , the 281 outer circle. The angle zero starts from the positive x-axis direction. 282 283 .. _Box_Sum: 284 285 Box Sum 286 ------- 287 288 Perform the sum of counts in a 2D region of interest.When editing the slicer, 289 the user can enter the length and the width the rectangle slicer and the 290 coordinates of the center of this rectangle. 291 292 .. _Box_Averaging_in_Qx: 293 294 Box Averaging in Qx 295 ------------------- 296 297 Computes average I(Qx) for a region of interest. When editing the slicer, the 298 user can control the length and the width the rectangle slicer. The averaged 299 output is calculated from the constant bins with rectangular shape. The 300 resultant q values are nominal values, i.e., the central values of each bins 301 on the x-axis. 302 303 .. _Box_Averaging_in_Qy: 304 305 Box Averaging in Qy 306 ------------------- 307 308 Computes average I(Qy) for a region of interest.When editing the slicer, the 309 user can control the length and the width the rectangle slicer. The averaged 310 output is calculated from the constant bins with rectangular shape. The 311 resultant q values are nominal values, i.e., the central values of each bins 312 on the y-axis. 313 314 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 315 316 .. _Key_Sequences: 317 318 Key Sequences 319 ------------- 320 321 Floating_Panel_ 322 323 Context_Menu_ 324 325 Zoom_ 326 327 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 328 329 .. _Floating_Panel: 330 331 Floating Panel 332 -------------- 333 334 For a graph panel to float on the top of the SV window: 335 336 Press the *Ctrl(Cmd on MAC) key* on dragging and placing a panel. Or if you 337 want to make all plot panels float, select 'Float' from Graph/Preperences in 338 the menu bar. Otherwise choose 'Dock'. 339 340 .. _Context_Menu: 341 342 Graph Context Menu 343 ------------------ 344 345 To get the graph context menu to print, copy, save data, (2D)average, etc, 346 *locate the mouse point on the plot to highlight and *(Mouse) Right Click* 347 to bring up the full menu. 348 349 .. _Zoom: 350 351 Zoom In/Out 352 ----------- 353 354 To Zoom in or out the full plot, *locate the mouse point inside the graph 355 which will be the center of the zooming, then *rotate MouseWheel*. 356 357 *To Zoom in or out the plot in x or y direction, *locate (and click) the 358 mouse point near x (or y) axis just outside of the graph and then *rotate 359 MouseWheel* .* Note that this works only on the 1D plots. -
src/sas/models/media/model_functions.rst
r79492222 r98b30b4 82 82 Contents 83 83 -------- 84 1. Introduction_84 1. Background_ 85 85 86 86 2. Model_ Functions … … 99 99 100 100 101 .. _ Introduction:102 103 1. Introduction101 .. _Background: 102 103 1. Background 104 104 --------------- 105 105
Note: See TracChangeset
for help on using the changeset viewer.