source: sasview/_modules/sas/plottools/fitDialog.html @ a462c6a

gh-pages
Last change on this file since a462c6a was a462c6a, checked in by ajj, 9 years ago

Rebuild to fix index and modules docs

  • Property mode set to 100644
File size: 142.3 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6  <head>
7    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8   
9    <title>sas.plottools.fitDialog &mdash; SasView 3.0.0 documentation</title>
10   
11    <link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
12    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
13   
14    <script type="text/javascript">
15      var DOCUMENTATION_OPTIONS = {
16        URL_ROOT:    '../../../',
17        VERSION:     '3.0.0',
18        COLLAPSE_INDEX: false,
19        FILE_SUFFIX: '.html',
20        HAS_SOURCE:  true
21      };
22    </script>
23    <script type="text/javascript" src="../../../_static/jquery.js"></script>
24    <script type="text/javascript" src="../../../_static/underscore.js"></script>
25    <script type="text/javascript" src="../../../_static/doctools.js"></script>
26    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27    <link rel="top" title="SasView 3.0.0 documentation" href="../../../index.html" />
28    <link rel="up" title="Module code" href="../../index.html" /> 
29  </head>
30  <body>
31    <div class="related">
32      <h3>Navigation</h3>
33      <ul>
34        <li class="right" style="margin-right: 10px">
35          <a href="../../../genindex.html" title="General Index"
36             accesskey="I">index</a></li>
37        <li class="right" >
38          <a href="../../../py-modindex.html" title="Python Module Index"
39             >modules</a> |</li>
40        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
41          <li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li> 
42      </ul>
43    </div> 
44
45    <div class="document">
46      <div class="documentwrapper">
47        <div class="bodywrapper">
48          <div class="body">
49           
50  <h1>Source code for sas.plottools.fitDialog</h1><div class="highlight"><pre>
51<span class="kn">import</span> <span class="nn">wx</span>
52<span class="kn">from</span> <span class="nn">plottables</span> <span class="kn">import</span> <span class="n">Theory1D</span>
53<span class="kn">import</span> <span class="nn">math</span>
54<span class="kn">import</span> <span class="nn">numpy</span>
55<span class="kn">import</span> <span class="nn">fittings</span>
56<span class="kn">import</span> <span class="nn">transform</span>
57<span class="kn">import</span> <span class="nn">sys</span>
58
59<span class="c">#Linear fit panel size </span>
60<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s">&quot;win32&quot;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
61    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">0</span>
62    <span class="n">PNL_WIDTH</span> <span class="o">=</span> <span class="mi">450</span>
63    <span class="n">PNL_HEIGHT</span> <span class="o">=</span> <span class="mi">500</span>
64<span class="k">else</span><span class="p">:</span>
65    <span class="n">FONT_VARIANT</span> <span class="o">=</span> <span class="mi">1</span>
66    <span class="n">PNL_WIDTH</span> <span class="o">=</span> <span class="mi">500</span>
67    <span class="n">PNL_HEIGHT</span> <span class="o">=</span> <span class="mi">500</span>
68<span class="n">RG_ON</span> <span class="o">=</span> <span class="bp">True</span>   
69   
70<div class="viewcode-block" id="format_number"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.format_number">[docs]</a><span class="k">def</span> <span class="nf">format_number</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">high</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
71    <span class="sd">&quot;&quot;&quot;</span>
72<span class="sd">    Return a float in a standardized, human-readable formatted string</span>
73<span class="sd">    &quot;&quot;&quot;</span>
74    <span class="k">try</span><span class="p">:</span>
75        <span class="n">value</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
76    <span class="k">except</span><span class="p">:</span>
77        <span class="n">output</span> <span class="o">=</span> <span class="s">&quot;NaN&quot;</span>
78        <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
79   
80    <span class="k">if</span> <span class="n">high</span><span class="p">:</span>
81        <span class="n">output</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%-6.4g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span>
82       
83    <span class="k">else</span><span class="p">:</span>
84        <span class="n">output</span> <span class="o">=</span> <span class="s">&quot;</span><span class="si">%-5.3g</span><span class="s">&quot;</span> <span class="o">%</span> <span class="n">value</span>
85    <span class="k">return</span> <span class="n">output</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
86
87</div>
88<div class="viewcode-block" id="LinearFit"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit">[docs]</a><span class="k">class</span> <span class="nc">LinearFit</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="p">):</span>
89    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">plottable</span><span class="p">,</span> <span class="n">push_data</span><span class="p">,</span> <span class="n">transform</span><span class="p">,</span> <span class="n">title</span><span class="p">):</span>
90        <span class="sd">&quot;&quot;&quot;</span>
91<span class="sd">        Dialog window pops- up when select Linear fit on Context menu</span>
92<span class="sd">        Displays fitting parameters</span>
93<span class="sd">        &quot;&quot;&quot;</span>
94        <span class="n">wx</span><span class="o">.</span><span class="n">Dialog</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="n">title</span><span class="p">,</span> 
95                           <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">PNL_WIDTH</span><span class="p">,</span> <span class="mi">350</span><span class="p">))</span>
96        <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span>
97        <span class="bp">self</span><span class="o">.</span><span class="n">transform</span> <span class="o">=</span> <span class="n">transform</span>
98        <span class="c">#Font</span>
99        <span class="bp">self</span><span class="o">.</span><span class="n">SetWindowVariant</span><span class="p">(</span><span class="n">variant</span><span class="o">=</span><span class="n">FONT_VARIANT</span><span class="p">)</span>
100        <span class="c"># Registered owner for close event</span>
101        <span class="bp">self</span><span class="o">.</span><span class="n">_registered_close</span> <span class="o">=</span> <span class="bp">None</span>
102       
103        <span class="c">#dialog panel self call function to plot the fitting function</span>
104        <span class="bp">self</span><span class="o">.</span><span class="n">push_data</span> <span class="o">=</span> <span class="n">push_data</span>
105        <span class="c">#dialog self plottable</span>
106        <span class="bp">self</span><span class="o">.</span><span class="n">plottable</span> <span class="o">=</span> <span class="n">plottable</span>
107        <span class="bp">self</span><span class="o">.</span><span class="n">rg_on</span> <span class="o">=</span> <span class="bp">False</span>
108        <span class="c"># Receive transformations of x and y</span>
109        <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Avalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Bvalue</span><span class="p">,</span>\
110               <span class="bp">self</span><span class="o">.</span><span class="n">ErrAvalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">ErrBvalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Chivalue</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">transform</span><span class="p">()</span>
111       
112        <span class="c">#Dialog interface</span>
113        <span class="n">vbox</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">VERTICAL</span><span class="p">)</span>
114        <span class="n">sizer</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">GridBagSizer</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
115        <span class="n">_BOX_WIDTH</span> <span class="o">=</span> <span class="mi">100</span>
116 
117        <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span>      <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
118        <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Fit value for the slope parameter.&quot;</span><span class="p">)</span>
119        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span>   <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
120        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Error on the slope parameter.&quot;</span><span class="p">)</span>
121        <span class="bp">self</span><span class="o">.</span><span class="n">tcB</span>      <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
122        <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Fit value for the constant parameter.&quot;</span><span class="p">)</span>
123        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span>   <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
124        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Error on the constant parameter.&quot;</span><span class="p">)</span>
125        <span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span>    <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
126        <span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Chi^2 over degrees of freedom.&quot;</span><span class="p">)</span>
127        <span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
128        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Enter the minimum value on &quot;</span>
129        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot;the x-axis to be included in the fit.&quot;</span>
130        <span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
131        <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span>  <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
132        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Enter the maximum value on &quot;</span>
133        <span class="n">msg</span> <span class="o">+=</span> <span class="s">&quot; the x-axis to be included in the fit.&quot;</span>
134        <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
135        <span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
136        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Minimum value on the x-axis for the plotted data.&quot;</span>
137        <span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
138        <span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="n">_BOX_WIDTH</span><span class="p">,</span> <span class="mi">20</span><span class="p">))</span>
139        <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;Maximum value on the x-axis for the plotted data.&quot;</span>
140        <span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
141
142        <span class="c"># Make the info box not editable</span>
143        <span class="c">#_BACKGROUND_COLOR = &#39;#ffdf85&#39;</span>
144        <span class="n">_BACKGROUND_COLOR</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">GetBackgroundColour</span><span class="p">()</span>
145        <span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
146        <span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
147        <span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
148        <span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
149       
150        <span class="c"># Buttons on the bottom</span>
151        <span class="bp">self</span><span class="o">.</span><span class="n">bg_on</span> <span class="o">=</span> <span class="bp">False</span>
152        <span class="bp">self</span><span class="o">.</span><span class="n">static_line_1</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticLine</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
153        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Fit&#39;</span><span class="p">)</span>
154        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_onFit</span><span class="p">)</span>
155        <span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="o">.</span><span class="n">SetToolTipString</span><span class="p">(</span><span class="s">&quot;Perform fit.&quot;</span><span class="p">)</span>
156        <span class="bp">self</span><span class="o">.</span><span class="n">btClose</span> <span class="o">=</span><span class="n">wx</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_CANCEL</span><span class="p">,</span> <span class="s">&#39;Close&#39;</span><span class="p">)</span>
157        <span class="bp">self</span><span class="o">.</span><span class="n">btClose</span><span class="o">.</span><span class="n">Bind</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">EVT_BUTTON</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_on_close</span><span class="p">)</span>
158        <span class="k">if</span> <span class="n">RG_ON</span><span class="p">:</span>
159            <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y)&quot;</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y*x)&quot;</span><span class="p">)</span> <span class="ow">and</span> \
160                    <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x^(2)&quot;</span><span class="p">):</span>
161                <span class="bp">self</span><span class="o">.</span><span class="n">rg_on</span> <span class="o">=</span> <span class="bp">True</span>
162            <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x^(4)&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;y*x^(4)&quot;</span><span class="p">):</span>
163                <span class="bp">self</span><span class="o">.</span><span class="n">bg_on</span> <span class="o">=</span> <span class="bp">True</span>
164        <span class="c"># Intro</span>
165        <span class="n">explanation</span> <span class="o">=</span> <span class="s">&quot;Perform fit for y(x) = ax + b&quot;</span>
166        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bg_on</span><span class="p">:</span>
167            <span class="n">param_a</span> <span class="o">=</span> <span class="s">&#39;Background (= Parameter a)&#39;</span>
168        <span class="k">else</span><span class="p">:</span>
169            <span class="n">param_a</span> <span class="o">=</span> <span class="s">&#39;Parameter a&#39;</span>
170        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer</span><span class="p">)</span>
171        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
172        <span class="n">iy</span> <span class="o">=</span> <span class="mi">1</span>
173        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">explanation</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
174                 <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
175        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">2</span>
176        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">param_a</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
177                 <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
178        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
179        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="p">,(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
180        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
181        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;+/-&#39;</span><span class="p">),</span>
182                  <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
183        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
184        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
185                  <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
186        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
187        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
188        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Parameter b&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
189                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
190        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
191        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tcB</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
192        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
193        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;+/-&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
194                  <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
195        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
196        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
197                   <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
198        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
199        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
200        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Chi2/dof&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
201                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
202        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
203        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
204
205       
206        <span class="c">#sizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0)</span>
207        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">2</span>
208        <span class="n">ix</span> <span class="o">=</span> <span class="mi">1</span>
209        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Min&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
210                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
211        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">2</span>
212        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Max&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
213                  <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
214
215        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
216        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
217        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Maximum range (linear scale)&#39;</span><span class="p">),</span>
218                  <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
219                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
220        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
221        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
222                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
223        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">2</span>
224        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> 
225                  <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
226       
227        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
228        <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
229        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Fit range of &#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="p">),</span>
230                  <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
231                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
232        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
233        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
234                   <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
235        <span class="n">ix</span> <span class="o">+=</span> <span class="mi">2</span>
236        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
237        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rg_on</span><span class="p">:</span>
238            <span class="bp">self</span><span class="o">.</span><span class="n">SetSize</span><span class="p">((</span><span class="n">PNL_WIDTH</span><span class="p">,</span> <span class="n">PNL_HEIGHT</span><span class="p">))</span>
239            <span class="n">I0_stxt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;I(q=0)&#39;</span><span class="p">)</span>
240            <span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
241            <span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
242            <span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
243            <span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
244            <span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
245            <span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
246            <span class="n">Rg_stxt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Rg [A]&#39;</span><span class="p">)</span>
247            <span class="n">Rg_stxt</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y)&quot;</span> <span class="p">)</span>
248            <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
249            <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
250            <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
251            <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y)&quot;</span> <span class="p">)</span>
252            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
253            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
254            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
255            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y)&quot;</span> <span class="p">)</span>
256            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_pm</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;+/-&#39;</span><span class="p">)</span>
257            <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_pm</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y)&quot;</span> <span class="p">)</span>
258            <span class="n">Diameter_stxt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Rod Diameter [A]&#39;</span><span class="p">)</span>
259            <span class="n">Diameter_stxt</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y*x)&quot;</span><span class="p">)</span>
260            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
261            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
262            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
263            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y*x)&quot;</span><span class="p">)</span>
264            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_pm</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;+/-&#39;</span><span class="p">)</span>
265            <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_pm</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y*x)&quot;</span><span class="p">)</span>
266            <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
267            <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
268            <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
269            <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;ln(y*x)&quot;</span><span class="p">)</span>
270            <span class="n">RgQmin_stxt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Rg*Qmin&#39;</span><span class="p">)</span>
271            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
272            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
273            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
274            <span class="n">RgQmax_stxt</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;Rg*Qmax&#39;</span><span class="p">)</span>
275            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">TextCtrl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
276            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span><span class="o">.</span><span class="n">SetEditable</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
277            <span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">_BACKGROUND_COLOR</span><span class="p">)</span>
278
279            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">2</span>
280            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
281            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">I0_stxt</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
282                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
283            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
284            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
285                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
286            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
287            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">StaticText</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">&#39;+/-&#39;</span><span class="p">),</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
288                                    <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
289            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
290            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> 
291                                    <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
292           
293            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
294            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
295            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Rg_stxt</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
296                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
297            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
298            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
299                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
300   
301            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
302            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_pm</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
303                                    <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
304            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
305            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> 
306                                    <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
307            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
308            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
309            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">Diameter_stxt</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
310                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
311            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
312            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
313                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
314   
315            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
316            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Diameter_pm</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span>
317                                    <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
318            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
319            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> 
320                                    <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
321            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
322            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
323            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">RgQmin_stxt</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
324                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
325            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
326            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
327                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
328            <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
329            <span class="n">ix</span> <span class="o">=</span> <span class="mi">0</span>
330            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">RgQmax_stxt</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
331                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">15</span><span class="p">)</span>
332            <span class="n">ix</span> <span class="o">+=</span> <span class="mi">1</span>
333            <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
334                                    <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
335           
336        <span class="n">iy</span> <span class="o">+=</span> <span class="mi">1</span>
337        <span class="n">ix</span> <span class="o">=</span> <span class="mi">1</span>
338       
339        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">static_line_1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
340        <span class="n">sizer_button</span> <span class="o">=</span> <span class="n">wx</span><span class="o">.</span><span class="n">BoxSizer</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">HORIZONTAL</span><span class="p">)</span>
341        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">((</span><span class="mi">20</span><span class="p">,</span> <span class="mi">20</span><span class="p">),</span> <span class="mi">1</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
342        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
343        <span class="n">sizer_button</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btClose</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span>
344                          <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">RIGHT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
345        <span class="n">vbox</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="n">sizer_button</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">wx</span><span class="o">.</span><span class="n">EXPAND</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">BOTTOM</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
346       
347        <span class="n">sizer</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">btFit</span><span class="p">,</span> <span class="p">(</span><span class="n">iy</span><span class="p">,</span> <span class="n">ix</span><span class="p">),</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span> <span class="n">wx</span><span class="o">.</span><span class="n">LEFT</span><span class="o">|</span><span class="n">wx</span><span class="o">.</span><span class="n">ADJUST_MINSIZE</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
348        <span class="c">#panel.SetSizer(sizer)</span>
349        <span class="bp">self</span><span class="o">.</span><span class="n">SetSizer</span><span class="p">(</span><span class="n">vbox</span><span class="p">)</span>
350        <span class="bp">self</span><span class="o">.</span><span class="n">Centre</span><span class="p">()</span>
351        <span class="c"># Receives the type of model for the fitting</span>
352        <span class="kn">from</span> <span class="nn">LineModel</span> <span class="kn">import</span> <span class="n">LineModel</span>
353        <span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">LineModel</span><span class="p">()</span>
354        <span class="c">#Display the fittings values</span>
355        <span class="bp">self</span><span class="o">.</span><span class="n">default_A</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">getParam</span><span class="p">(</span><span class="s">&#39;A&#39;</span><span class="p">)</span>
356        <span class="bp">self</span><span class="o">.</span><span class="n">default_B</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">getParam</span><span class="p">(</span><span class="s">&#39;B&#39;</span><span class="p">)</span>
357        <span class="bp">self</span><span class="o">.</span><span class="n">cstA</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">Parameter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span> <span class="s">&#39;A&#39;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_A</span><span class="p">)</span>
358        <span class="bp">self</span><span class="o">.</span><span class="n">cstB</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">Parameter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span> <span class="s">&#39;B&#39;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_B</span><span class="p">)</span>
359       
360        <span class="c"># Set default value of parameter in fit dialog</span>
361        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Avalue</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
362            <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">default_A</span><span class="p">))</span>
363        <span class="k">else</span><span class="p">:</span>
364            <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Avalue</span><span class="p">))</span>
365        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Bvalue</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
366            <span class="bp">self</span><span class="o">.</span><span class="n">tcB</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">default_B</span><span class="p">))</span>
367        <span class="k">else</span><span class="p">:</span>
368            <span class="bp">self</span><span class="o">.</span><span class="n">tcB</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Bvalue</span><span class="p">))</span>
369        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ErrAvalue</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
370            <span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="mf">0.0</span><span class="p">))</span>
371        <span class="k">else</span><span class="p">:</span>
372            <span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ErrAvalue</span><span class="p">))</span>
373        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ErrBvalue</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
374            <span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="mf">0.0</span><span class="p">))</span>
375        <span class="k">else</span><span class="p">:</span>
376            <span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ErrBvalue</span><span class="p">))</span>
377        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Chivalue</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
378            <span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="mf">0.0</span><span class="p">))</span>
379        <span class="k">else</span><span class="p">:</span>
380            <span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span><span class="o">.</span><span class="n">SetLabel</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Chivalue</span><span class="p">))</span>
381        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">plottable</span><span class="o">.</span><span class="n">x</span> <span class="o">!=</span> <span class="p">[]:</span>
382            <span class="c">#store the values of View in self.x,self.y,self.dx,self.dy</span>
383            <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dx</span><span class="p">,</span> \
384                     <span class="bp">self</span><span class="o">.</span><span class="n">dy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">plottable</span><span class="o">.</span><span class="n">returnValuesOfView</span><span class="p">()</span>
385            <span class="k">try</span><span class="p">:</span>
386                <span class="bp">self</span><span class="o">.</span><span class="n">mini</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">floatForwardTransform</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
387            <span class="k">except</span><span class="p">:</span>
388                <span class="bp">self</span><span class="o">.</span><span class="n">mini</span> <span class="o">=</span> <span class="s">&quot;Invalid&quot;</span>
389            <span class="k">try</span><span class="p">:</span>
390                <span class="bp">self</span><span class="o">.</span><span class="n">maxi</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">floatForwardTransform</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">))</span>
391            <span class="k">except</span><span class="p">:</span>
392                <span class="bp">self</span><span class="o">.</span><span class="n">maxi</span> <span class="o">=</span> <span class="s">&quot;Invalid&quot;</span>
393
394            <span class="bp">self</span><span class="o">.</span><span class="n">initXmin</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plottable</span><span class="o">.</span><span class="n">x</span><span class="p">)))</span>
395            <span class="bp">self</span><span class="o">.</span><span class="n">initXmax</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">plottable</span><span class="o">.</span><span class="n">x</span><span class="p">)))</span>
396            <span class="bp">self</span><span class="o">.</span><span class="n">mini</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
397            <span class="bp">self</span><span class="o">.</span><span class="n">maxi</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)</span>
398            <span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">mini</span><span class="p">))</span>
399            <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">maxi</span><span class="p">))</span>
400   
401<div class="viewcode-block" id="LinearFit.register_close"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.register_close">[docs]</a>    <span class="k">def</span> <span class="nf">register_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">owner</span><span class="p">):</span>
402        <span class="sd">&quot;&quot;&quot;</span>
403<span class="sd">        Method to register the close event to a parent</span>
404<span class="sd">        window that needs notification when the dialog</span>
405<span class="sd">        is closed</span>
406<span class="sd">        </span>
407<span class="sd">        :param owner: parent window</span>
408<span class="sd">        </span>
409<span class="sd">        &quot;&quot;&quot;</span>
410        <span class="bp">self</span><span class="o">.</span><span class="n">_registered_close</span> <span class="o">=</span> <span class="n">owner</span>
411        </div>
412    <span class="k">def</span> <span class="nf">_on_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
413        <span class="sd">&quot;&quot;&quot;</span>
414<span class="sd">        Close event.</span>
415<span class="sd">        Notify registered owner if available.</span>
416<span class="sd">        &quot;&quot;&quot;</span>
417        <span class="n">event</span><span class="o">.</span><span class="n">Skip</span><span class="p">()</span>
418        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_registered_close</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
419            <span class="bp">self</span><span class="o">.</span><span class="n">_registered_close</span><span class="p">()</span>
420       
421    <span class="k">def</span> <span class="nf">_onFit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
422        <span class="sd">&quot;&quot;&quot;</span>
423<span class="sd">        Performs the fit. Receive an event when clicking on</span>
424<span class="sd">        the button Fit.Computes chisqr ,</span>
425<span class="sd">        A and B parameters of the best linear fit y=Ax +B</span>
426<span class="sd">        Push a plottable to</span>
427<span class="sd">        &quot;&quot;&quot;</span>
428        <span class="n">tempx</span> <span class="o">=</span> <span class="p">[]</span>
429        <span class="n">tempy</span> <span class="o">=</span> <span class="p">[]</span>
430        <span class="n">tempdy</span> <span class="o">=</span> <span class="p">[]</span>
431           
432        <span class="c"># Check if View contains a x array .we online fit when x exits</span>
433        <span class="c"># makes transformation for y as a line to fit</span>
434        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">!=</span> <span class="p">[]:</span>
435            <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">checkFitValues</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="p">)</span> <span class="o">==</span> <span class="bp">True</span><span class="p">):</span>
436                <span class="c">#Check if the field of Fit Dialog contain values</span>
437                <span class="c"># and use the x max and min of the user</span>
438                <span class="c">#xminView,xmaxView = self._checkVal(self.xminFit.GetValue(),</span>
439                <span class="c">#self.xmaxFit.GetValue())</span>
440                <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_checkVal</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="p">):</span>
441                    <span class="k">return</span>
442                <span class="n">xminView</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
443                <span class="n">xmaxView</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
444                <span class="c">#xmin = self.floatInvTransform(xminView)</span>
445                <span class="c">#xmax = self.floatInvTransform(xmaxView)</span>
446                <span class="n">xmin</span> <span class="o">=</span> <span class="n">xminView</span>
447                <span class="n">xmax</span> <span class="o">=</span> <span class="n">xmaxView</span>
448                <span class="c"># Store the transformed values of view x, y,dy</span>
449                <span class="c"># in variables  before the fit</span>
450                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;log10(y)&quot;</span><span class="p">:</span>
451                    <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
452                        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">)):</span>
453                            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmin</span><span class="p">):</span>
454                                <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
455                                <span class="n">tempdy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">errToLogX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
456                                                        <span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="mi">0</span><span class="p">))</span>
457                    <span class="k">else</span><span class="p">:</span>
458                        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">)):</span>
459                            <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
460                            <span class="n">tempdy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">transform</span><span class="o">.</span><span class="n">errToLogX</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
461                                                            <span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dy</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="mi">0</span><span class="p">))</span>
462                <span class="k">else</span><span class="p">:</span>
463                    <span class="n">tempy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span>
464                    <span class="n">tempdy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dy</span>
465               
466                <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
467                    <span class="k">for</span> <span class="n">x_i</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">:</span>
468                        <span class="k">if</span> <span class="n">x_i</span> <span class="o">&gt;=</span> <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmin</span><span class="p">):</span>
469                            <span class="n">tempx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">x_i</span><span class="p">))</span>
470                <span class="k">else</span><span class="p">:</span>
471                    <span class="n">tempx</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span>
472             
473                <span class="c">#Find the fitting parameters</span>
474                <span class="c"># Always use the same defaults, so that fit history</span>
475                <span class="c">#doesn&#39;t play a role!</span>
476                <span class="bp">self</span><span class="o">.</span><span class="n">cstA</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">Parameter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span> <span class="s">&#39;A&#39;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_A</span><span class="p">)</span>
477                <span class="bp">self</span><span class="o">.</span><span class="n">cstB</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">Parameter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span> <span class="s">&#39;B&#39;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_B</span><span class="p">)</span>
478               
479                <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
480                    <span class="n">tempdy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tempdy</span><span class="p">)</span>
481                    <span class="n">tempdy</span><span class="p">[</span><span class="n">tempdy</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
482                    <span class="n">chisqr</span><span class="p">,</span> <span class="n">out</span><span class="p">,</span> <span class="n">cov</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">sasfit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span>
483                                                        <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">cstA</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cstB</span><span class="p">],</span>
484                                                        <span class="n">tempx</span><span class="p">,</span> <span class="n">tempy</span><span class="p">,</span>
485                                                        <span class="n">tempdy</span><span class="p">,</span>
486                                                        <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmin</span><span class="p">),</span>
487                                                        <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmax</span><span class="p">))</span>
488                <span class="k">else</span><span class="p">:</span>
489                    <span class="n">tempdy</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">tempdy</span><span class="p">)</span>
490                    <span class="n">tempdy</span><span class="p">[</span><span class="n">tempdy</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
491                    <span class="n">chisqr</span><span class="p">,</span> <span class="n">out</span><span class="p">,</span> <span class="n">cov</span> <span class="o">=</span> <span class="n">fittings</span><span class="o">.</span><span class="n">sasfit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span>
492                                                        <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">cstA</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cstB</span><span class="p">],</span>
493                                                        <span class="n">tempx</span><span class="p">,</span> <span class="n">tempy</span><span class="p">,</span> <span class="n">tempdy</span><span class="p">,</span>
494                                                        <span class="n">xminView</span><span class="p">,</span> <span class="n">xmaxView</span><span class="p">)</span>
495                <span class="c"># Use chi2/dof</span>
496                <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">tempx</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
497                    <span class="n">chisqr</span> <span class="o">=</span> <span class="n">chisqr</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">tempx</span><span class="p">)</span>
498               
499                <span class="c">#Check that cov and out are iterable before displaying them</span>
500                <span class="k">if</span> <span class="n">cov</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
501                    <span class="n">errA</span> <span class="o">=</span> <span class="mf">0.0</span>
502                    <span class="n">errB</span> <span class="o">=</span> <span class="mf">0.0</span>
503                <span class="k">else</span><span class="p">:</span>
504                    <span class="n">errA</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">cov</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
505                    <span class="n">errB</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">cov</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span>
506                <span class="k">if</span> <span class="n">out</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span>
507                    <span class="n">cstA</span> <span class="o">=</span> <span class="mf">0.0</span>
508                    <span class="n">cstB</span> <span class="o">=</span> <span class="mf">0.0</span>
509                <span class="k">else</span><span class="p">:</span>
510                    <span class="n">cstA</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
511                    <span class="n">cstB</span> <span class="o">=</span> <span class="n">out</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
512                <span class="c"># Reset model with the right values of A and B</span>
513                <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">setParam</span><span class="p">(</span><span class="s">&#39;A&#39;</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="n">cstA</span><span class="p">))</span>
514                <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">setParam</span><span class="p">(</span><span class="s">&#39;B&#39;</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="n">cstB</span><span class="p">))</span>
515               
516                <span class="n">tempx</span> <span class="o">=</span> <span class="p">[]</span>
517                <span class="n">tempy</span> <span class="o">=</span> <span class="p">[]</span>
518                <span class="n">y_model</span> <span class="o">=</span> <span class="mf">0.0</span>
519                <span class="c"># load tempy with the minimum transformation</span>
520               
521                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">:</span>
522                    <span class="n">y_model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmin</span><span class="p">))</span>
523                    <span class="n">tempx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xmin</span><span class="p">)</span>
524                <span class="k">else</span><span class="p">:</span>
525                    <span class="n">y_model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">xminView</span><span class="p">)</span>
526                    <span class="n">tempx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xminView</span><span class="p">)</span>
527                   
528                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;log10(y)&quot;</span><span class="p">:</span>
529                    <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">y_model</span><span class="p">))</span>
530                <span class="k">else</span><span class="p">:</span>
531                    <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">y_model</span><span class="p">)</span>
532                   
533                <span class="c"># load tempy with the maximum transformation</span>
534                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">:</span>
535                    <span class="n">y_model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">xmax</span><span class="p">))</span>
536                    <span class="n">tempx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xmax</span><span class="p">)</span>
537                <span class="k">else</span><span class="p">:</span>
538                    <span class="n">y_model</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">xmaxView</span><span class="p">)</span>
539                    <span class="n">tempx</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xmaxView</span><span class="p">)</span>
540                   
541                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">yLabel</span> <span class="o">==</span> <span class="s">&quot;log10(y)&quot;</span><span class="p">:</span>
542                    <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">y_model</span><span class="p">))</span>
543                <span class="k">else</span><span class="p">:</span>
544                    <span class="n">tempy</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">y_model</span><span class="p">)</span>
545                <span class="c">#Set the fit parameter display when  FitDialog is opened again</span>
546                <span class="bp">self</span><span class="o">.</span><span class="n">Avalue</span> <span class="o">=</span> <span class="n">cstB</span>
547                <span class="bp">self</span><span class="o">.</span><span class="n">Bvalue</span> <span class="o">=</span> <span class="n">cstA</span>
548                <span class="bp">self</span><span class="o">.</span><span class="n">ErrAvalue</span> <span class="o">=</span> <span class="n">errA</span>
549                <span class="bp">self</span><span class="o">.</span><span class="n">ErrBvalue</span> <span class="o">=</span> <span class="n">errB</span>
550                <span class="bp">self</span><span class="o">.</span><span class="n">Chivalue</span> <span class="o">=</span> <span class="n">chisqr</span>
551                <span class="bp">self</span><span class="o">.</span><span class="n">push_data</span><span class="p">(</span><span class="n">tempx</span><span class="p">,</span> <span class="n">tempy</span><span class="p">,</span> <span class="n">xminView</span><span class="p">,</span> <span class="n">xmaxView</span><span class="p">,</span>
552                               <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ongetValues</span><span class="p">())</span>
553               
554                <span class="c"># Display the fitting value on the Fit Dialog</span>
555                <span class="bp">self</span><span class="o">.</span><span class="n">_onsetValues</span><span class="p">(</span><span class="n">cstB</span><span class="p">,</span> <span class="n">cstA</span><span class="p">,</span> <span class="n">errA</span><span class="p">,</span> <span class="n">errB</span><span class="p">,</span> <span class="n">chisqr</span><span class="p">)</span>
556               
557    <span class="k">def</span> <span class="nf">_onsetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cstA</span><span class="p">,</span> <span class="n">cstB</span><span class="p">,</span> <span class="n">errA</span><span class="p">,</span> <span class="n">errB</span><span class="p">,</span> <span class="n">Chi</span><span class="p">):</span>
558        <span class="sd">&quot;&quot;&quot;</span>
559<span class="sd">        Display  the value on fit Dialog</span>
560<span class="sd">        &quot;&quot;&quot;</span>
561        <span class="n">rg</span> <span class="o">=</span> <span class="bp">None</span>
562        <span class="bp">self</span><span class="o">.</span><span class="n">tcA</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">cstA</span><span class="p">))</span>
563        <span class="bp">self</span><span class="o">.</span><span class="n">tcB</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">cstB</span><span class="p">))</span>
564        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrA</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">errA</span><span class="p">))</span>
565        <span class="bp">self</span><span class="o">.</span><span class="n">tcErrB</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">errB</span><span class="p">))</span>
566        <span class="bp">self</span><span class="o">.</span><span class="n">tcChi</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">Chi</span><span class="p">))</span>
567        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rg_on</span><span class="p">:</span>
568            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
569                <span class="n">rg</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span> <span class="o">*</span> <span class="nb">float</span><span class="p">(</span><span class="n">cstA</span><span class="p">))</span>
570                <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="n">rg</span><span class="p">)</span>
571                <span class="bp">self</span><span class="o">.</span><span class="n">Rg_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
572                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
573                    <span class="n">val</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">cstB</span><span class="p">)</span>
574                    <span class="bp">self</span><span class="o">.</span><span class="n">I0_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
575            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
576                <span class="k">if</span> <span class="n">rg</span> <span class="o">!=</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">rg</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
577                    <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="mi">3</span> <span class="o">*</span> <span class="nb">float</span><span class="p">(</span><span class="n">cstA</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">rg</span><span class="p">))</span>
578                <span class="k">else</span><span class="p">:</span>
579                    <span class="n">value</span> <span class="o">=</span><span class="s">&#39;&#39;</span>
580                <span class="bp">self</span><span class="o">.</span><span class="n">Rgerr_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
581                <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
582                    <span class="n">val</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">cstB</span><span class="p">)</span> <span class="o">-</span> <span class="n">numpy</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">cstB</span> <span class="o">+</span> <span class="n">errB</span><span class="p">))</span>
583                    <span class="bp">self</span><span class="o">.</span><span class="n">I0err_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
584            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
585                <span class="n">rg</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">*</span> <span class="n">numpy</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="o">-</span><span class="nb">float</span><span class="p">(</span><span class="n">cstA</span><span class="p">))</span>
586                <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="n">rg</span><span class="p">)</span>
587                <span class="bp">self</span><span class="o">.</span><span class="n">Diameter_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
588            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
589                <span class="k">if</span> <span class="n">rg</span> <span class="o">!=</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">rg</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
590                    <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="mi">8</span> <span class="o">*</span> <span class="nb">float</span><span class="p">(</span><span class="n">cstA</span><span class="p">)</span> <span class="o">/</span> <span class="n">rg</span><span class="p">)</span>
591                <span class="k">else</span><span class="p">:</span>
592                    <span class="n">value</span> <span class="o">=</span><span class="s">&#39;&#39;</span>
593                <span class="bp">self</span><span class="o">.</span><span class="n">Diametererr_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
594            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
595                <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="n">rg</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">mini</span><span class="p">)</span>
596                <span class="bp">self</span><span class="o">.</span><span class="n">RgQmin_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
597            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span><span class="o">.</span><span class="n">IsShown</span><span class="p">():</span>
598                <span class="n">value</span> <span class="o">=</span> <span class="n">format_number</span><span class="p">(</span><span class="n">rg</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">maxi</span><span class="p">)</span>
599                <span class="bp">self</span><span class="o">.</span><span class="n">RgQmax_tctr</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
600               
601    <span class="k">def</span> <span class="nf">_ongetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
602        <span class="sd">&quot;&quot;&quot;</span>
603<span class="sd">        Display  the value on fit Dialog</span>
604<span class="sd">        &quot;&quot;&quot;</span>
605        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Avalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Bvalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">ErrAvalue</span><span class="p">,</span> \
606                            <span class="bp">self</span><span class="o">.</span><span class="n">ErrBvalue</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">Chivalue</span>
607   
608    <span class="k">def</span> <span class="nf">_checkVal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usermin</span><span class="p">,</span> <span class="n">usermax</span><span class="p">):</span>
609        <span class="sd">&quot;&quot;&quot;</span>
610<span class="sd">        Ensure that fields parameter contains a min and a max value</span>
611<span class="sd">        within x min and x max range</span>
612<span class="sd">        &quot;&quot;&quot;</span>
613        <span class="bp">self</span><span class="o">.</span><span class="n">mini</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
614        <span class="bp">self</span><span class="o">.</span><span class="n">maxi</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
615        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
616        <span class="k">try</span><span class="p">:</span>
617            <span class="n">mini</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">usermin</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
618            <span class="n">maxi</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">usermax</span><span class="o">.</span><span class="n">GetValue</span><span class="p">())</span>
619            <span class="k">if</span> <span class="n">mini</span> <span class="o">&lt;</span> <span class="n">maxi</span><span class="p">:</span>
620                <span class="n">usermin</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
621                <span class="n">usermin</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
622            <span class="k">else</span><span class="p">:</span>
623                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
624                <span class="n">usermin</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
625                <span class="n">usermin</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
626        <span class="k">except</span><span class="p">:</span>
627            <span class="c"># Check for possible values entered</span>
628            <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
629            <span class="n">usermin</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
630            <span class="n">usermin</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
631     
632        <span class="k">return</span> <span class="n">flag</span>
633           
634<div class="viewcode-block" id="LinearFit.floatForwardTransform"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.floatForwardTransform">[docs]</a>    <span class="k">def</span> <span class="nf">floatForwardTransform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
635        <span class="sd">&quot;&quot;&quot;</span>
636<span class="sd">        transform a float.</span>
637<span class="sd">        &quot;&quot;&quot;</span>
638        <span class="c">#TODO: refactor this with proper object-oriented design</span>
639        <span class="c"># This code stinks.</span>
640        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x&quot;</span><span class="p">):</span>
641            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toX</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
642        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x^(2)&quot;</span><span class="p">):</span>
643            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toX2</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
644        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;ln(x)&quot;</span><span class="p">):</span>
645            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toLogX</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
646        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
647            <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
648                    </div>
649<div class="viewcode-block" id="LinearFit.floatTransform"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.floatTransform">[docs]</a>    <span class="k">def</span> <span class="nf">floatTransform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
650        <span class="sd">&quot;&quot;&quot;</span>
651<span class="sd">        transform a float.It is use to determine the x.</span>
652<span class="sd">        View min and x.View max for values</span>
653<span class="sd">        not in x</span>
654<span class="sd">        &quot;&quot;&quot;</span>
655        <span class="c">#TODO: refactor this with proper object-oriented design</span>
656        <span class="c"># This code stinks.</span>
657        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x&quot;</span><span class="p">):</span>
658            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toX</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
659        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x^(2)&quot;</span><span class="p">):</span>
660            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toX2</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
661        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;ln(x)&quot;</span><span class="p">):</span>
662            <span class="k">return</span> <span class="n">transform</span><span class="o">.</span><span class="n">toLogX</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
663        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
664            <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
665                <span class="k">return</span> <span class="n">x</span>
666            <span class="k">else</span><span class="p">:</span>
667                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="s">&quot;cannot compute log of a negative number&quot;</span>
668            </div>
669<div class="viewcode-block" id="LinearFit.floatInvTransform"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.floatInvTransform">[docs]</a>    <span class="k">def</span> <span class="nf">floatInvTransform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
670        <span class="sd">&quot;&quot;&quot;</span>
671<span class="sd">        transform a float.It is use to determine the x.View min and x.View</span>
672<span class="sd">        max for values not in x</span>
673<span class="sd">        </span>
674<span class="sd">        &quot;&quot;&quot;</span>
675        <span class="c">#TODO: refactor this. This is just a hack to make the</span>
676        <span class="c"># functionality work without rewritting the whole code</span>
677        <span class="c"># with good design (which really should be done...).</span>
678        <span class="k">if</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;x^(2)&quot;</span><span class="p">):</span>
679            <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
680       
681        <span class="k">elif</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>
682            <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
683       
684        <span class="k">elif</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;ln(x)&quot;</span><span class="p">):</span>
685            <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
686        <span class="k">return</span> <span class="n">x</span>
687            </div>
688<div class="viewcode-block" id="LinearFit.checkFitValues"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.checkFitValues">[docs]</a>    <span class="k">def</span> <span class="nf">checkFitValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
689        <span class="sd">&quot;&quot;&quot;</span>
690<span class="sd">            Check the validity of input values</span>
691<span class="sd">        &quot;&quot;&quot;</span>
692        <span class="n">flag</span> <span class="o">=</span> <span class="bp">True</span>
693        <span class="n">value</span> <span class="o">=</span> <span class="n">item</span><span class="o">.</span><span class="n">GetValue</span><span class="p">()</span>
694        <span class="c"># Check for possible values entered</span>
695        <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">xLabel</span> <span class="o">==</span> <span class="s">&quot;log10(x)&quot;</span><span class="p">):</span>  <span class="c">#or self.xLabel==&quot;ln(x)&quot;):</span>
696            <span class="k">if</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">):</span>
697                <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">WHITE</span><span class="p">)</span>
698                <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
699            <span class="k">else</span><span class="p">:</span>
700                <span class="n">flag</span> <span class="o">=</span> <span class="bp">False</span>
701                <span class="n">item</span><span class="o">.</span><span class="n">SetBackgroundColour</span><span class="p">(</span><span class="s">&quot;pink&quot;</span><span class="p">)</span>
702                <span class="n">item</span><span class="o">.</span><span class="n">Refresh</span><span class="p">()</span>
703        <span class="k">return</span> <span class="n">flag</span>
704       </div>
705<div class="viewcode-block" id="LinearFit.setFitRange"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.setFitRange">[docs]</a>    <span class="k">def</span> <span class="nf">setFitRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">xminTrans</span><span class="p">,</span> <span class="n">xmaxTrans</span><span class="p">):</span>
706        <span class="sd">&quot;&quot;&quot;</span>
707<span class="sd">        Set fit parameters</span>
708<span class="sd">        &quot;&quot;&quot;</span>
709        <span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">xmin</span><span class="p">))</span>
710        <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">xmax</span><span class="p">))</span>
711        </div>
712<div class="viewcode-block" id="LinearFit.set_fit_region"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.LinearFit.set_fit_region">[docs]</a>    <span class="k">def</span> <span class="nf">set_fit_region</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">):</span>
713        <span class="sd">&quot;&quot;&quot;</span>
714<span class="sd">        Set the fit region</span>
715<span class="sd">        :param xmin: minimum x-value to be included in fit</span>
716<span class="sd">        :param xmax: maximum x-value to be included in fit</span>
717<span class="sd">        &quot;&quot;&quot;</span>
718        <span class="c"># Check values</span>
719        <span class="k">try</span><span class="p">:</span>
720            <span class="nb">float</span><span class="p">(</span><span class="n">xmin</span><span class="p">)</span>
721            <span class="nb">float</span><span class="p">(</span><span class="n">xmax</span><span class="p">)</span>
722        <span class="k">except</span><span class="p">:</span>
723            <span class="n">msg</span> <span class="o">=</span> <span class="s">&quot;LinearFit.set_fit_region: fit range must be floats&quot;</span>
724            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="n">msg</span>
725        <span class="bp">self</span><span class="o">.</span><span class="n">xminFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">xmin</span><span class="p">))</span>
726        <span class="bp">self</span><span class="o">.</span><span class="n">xmaxFit</span><span class="o">.</span><span class="n">SetValue</span><span class="p">(</span><span class="n">format_number</span><span class="p">(</span><span class="n">xmax</span><span class="p">))</span>
727 
728  </div></div>
729<div class="viewcode-block" id="MyApp"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.MyApp">[docs]</a><span class="k">class</span> <span class="nc">MyApp</span><span class="p">(</span><span class="n">wx</span><span class="o">.</span><span class="n">App</span><span class="p">):</span>
730    <span class="sd">&quot;&quot;&quot;</span>
731<span class="sd">    &quot;&quot;&quot;</span>
732<div class="viewcode-block" id="MyApp.OnInit"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.MyApp.OnInit">[docs]</a>    <span class="k">def</span> <span class="nf">OnInit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
733        <span class="sd">&quot;&quot;&quot;</span>
734<span class="sd">        &quot;&quot;&quot;</span>
735        <span class="n">wx</span><span class="o">.</span><span class="n">InitAllImageHandlers</span><span class="p">()</span>
736        <span class="n">plot</span> <span class="o">=</span> <span class="n">Theory1D</span><span class="p">([],</span> <span class="p">[])</span>
737        <span class="n">dialog</span> <span class="o">=</span> <span class="n">LinearFit</span><span class="p">(</span><span class="n">parent</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">plottable</span><span class="o">=</span><span class="n">plot</span><span class="p">,</span>
738                           <span class="n">push_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">onFitDisplay</span><span class="p">,</span>
739                           <span class="n">transform</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">returnTrans</span><span class="p">,</span>
740                            <span class="n">title</span><span class="o">=</span><span class="s">&#39;Linear Fit&#39;</span><span class="p">)</span>
741        <span class="k">if</span> <span class="n">dialog</span><span class="o">.</span><span class="n">ShowModal</span><span class="p">()</span> <span class="o">==</span> <span class="n">wx</span><span class="o">.</span><span class="n">ID_OK</span><span class="p">:</span>
742            <span class="k">pass</span>
743        <span class="n">dialog</span><span class="o">.</span><span class="n">Destroy</span><span class="p">()</span>
744        <span class="k">return</span> <span class="mi">1</span>
745    </div>
746<div class="viewcode-block" id="MyApp.onFitDisplay"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.MyApp.onFitDisplay">[docs]</a>    <span class="k">def</span> <span class="nf">onFitDisplay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tempx</span><span class="p">,</span> <span class="n">tempy</span><span class="p">,</span> <span class="n">xminView</span><span class="p">,</span> <span class="n">xmaxView</span><span class="p">,</span> <span class="n">xmin</span><span class="p">,</span> <span class="n">xmax</span><span class="p">,</span> <span class="n">func</span><span class="p">):</span>
747        <span class="sd">&quot;&quot;&quot;</span>
748<span class="sd">        &quot;&quot;&quot;</span>
749        <span class="k">pass</span>
750        </div>
751<div class="viewcode-block" id="MyApp.returnTrans"><a class="viewcode-back" href="../../../dev/api/sas.plottools.html#sas.plottools.fitDialog.MyApp.returnTrans">[docs]</a>    <span class="k">def</span> <span class="nf">returnTrans</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
752        <span class="sd">&quot;&quot;&quot;</span>
753<span class="sd">        &quot;&quot;&quot;</span>
754        <span class="k">return</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span></div></div>
755</pre></div>
756
757          </div>
758        </div>
759      </div>
760      <div class="sphinxsidebar">
761        <div class="sphinxsidebarwrapper">
762<div id="searchbox" style="display: none">
763  <h3>Quick search</h3>
764    <form class="search" action="../../../search.html" method="get">
765      <input type="text" name="q" />
766      <input type="submit" value="Go" />
767      <input type="hidden" name="check_keywords" value="yes" />
768      <input type="hidden" name="area" value="default" />
769    </form>
770    <p class="searchtip" style="font-size: 90%">
771    Enter search terms or a module, class or function name.
772    </p>
773</div>
774<script type="text/javascript">$('#searchbox').show(0);</script>
775        </div>
776      </div>
777      <div class="clearer"></div>
778    </div>
779    <div class="related">
780      <h3>Navigation</h3>
781      <ul>
782        <li class="right" style="margin-right: 10px">
783          <a href="../../../genindex.html" title="General Index"
784             >index</a></li>
785        <li class="right" >
786          <a href="../../../py-modindex.html" title="Python Module Index"
787             >modules</a> |</li>
788        <li><a href="../../../index.html">SasView 3.0.0 documentation</a> &raquo;</li>
789          <li><a href="../../index.html" >Module code</a> &raquo;</li> 
790      </ul>
791    </div>
792    <div class="footer">
793        &copy; Copyright 2013, The SasView Project.
794      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
795    </div>
796  </body>
797</html>
Note: See TracBrowser for help on using the repository browser.