def plot(self, **kwargs):
<EOL>if len(self._set_xdata)==<NUM_LIT:0> or len(self._set_ydata)==<NUM_LIT:0>: return self<EOL>if not self.figures == None and not type(self.figures) == list:<EOL><INDENT>self.figures = [self.figures]<EOL><DEDENT>xts, yts, eyts = self.get_processed_data()<EOL>xas, yas, eyas = self.get_processed_data(do_trim=False)<EOL>for k in kwargs: self[k] = kwargs[k]<EOL>if len(self.f) > <NUM_LIT:0>: rt = self.studentized_residuals()<EOL>for n in range(len(self._set_xdata)):<EOL><INDENT>xt = xts[n]<EOL>xa = xas[n]<EOL>yt = yts[n]<EOL>ya = yas[n]<EOL>eyt = eyts[n]<EOL>eya = eyas[n]<EOL>eyt = eyts[n]<EOL>if self.figures == None: fig = _p.figure(self['<STR_LIT>']+n)<EOL>else: fig = self.figures[n]<EOL>_p.ioff()<EOL>fig.clear()<EOL>a1 = fig.add_subplot(<NUM_LIT>)            <EOL>a2 = fig.add_subplot(<NUM_LIT>, sharex=a1) <EOL>a1.set_position([<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>])<EOL>a2.set_position([<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>])<EOL>a1.set_xscale(self['<STR_LIT>'][n])<EOL>a2.set_xscale(self['<STR_LIT>'][n])<EOL>a2.set_yscale(self['<STR_LIT>'][n])<EOL>fxa = self._get_xdata_for_function(n,xa)<EOL>fxt = self._get_xdata_for_function(n,xt)<EOL>if self['<STR_LIT>'][n] and not self.bg[n] is None:<EOL><INDENT>if self.results: p = self.results[<NUM_LIT:0>]<EOL>else:            p = self._pguess<EOL>d_ya  = self._evaluate_bg(n, xa,  p)<EOL>d_fya = self._evaluate_bg(n, fxa, p)<EOL>d_yt  = self._evaluate_bg(n, xt,  p)<EOL>d_fyt = self._evaluate_bg(n, fxt, p)<EOL><DEDENT>else:<EOL><INDENT>d_ya  = <NUM_LIT:0>*xa<EOL>d_fya = <NUM_LIT:0>*fxa<EOL>d_yt  = <NUM_LIT:0>*xt<EOL>d_fyt = <NUM_LIT:0>*fxt<EOL><DEDENT>if self['<STR_LIT>'][n]:<EOL><INDENT>style_data  = dict(self['<STR_LIT>' ][n]); style_data ['<STR_LIT>'] = <NUM_LIT><EOL>if self['<STR_LIT>'][n]: a2.errorbar(xa, ya-d_ya, eya, zorder=<NUM_LIT:5>, **style_data)<EOL>else:                      a2.plot    (xa, ya-d_ya,      zorder=<NUM_LIT:5>, **style_data)<EOL><DEDENT>if self['<STR_LIT>'][n]:     a2.errorbar(xt, yt-d_yt, eyt, zorder=<NUM_LIT:7>, **self['<STR_LIT>'][n])<EOL>else:                          a2.plot(    xt, yt-d_yt,      zorder=<NUM_LIT:7>, **self['<STR_LIT>'][n])<EOL>_s.tweaks.auto_zoom(axes=a2, draw=False)<EOL>if n < len(self.f): <EOL><INDENT>if self['<STR_LIT>'][n]:<EOL><INDENT>if self['<STR_LIT>'][n]:<EOL><INDENT>style_guess = dict(self['<STR_LIT>'][n]); style_guess['<STR_LIT>'] = <NUM_LIT><EOL>if self['<STR_LIT>'][n] and self.bg[n] is not None:<EOL><INDENT>bg_gya = self._evaluate_bg(n, fxa, self._pguess)<EOL>a2.plot(fxa, bg_gya-d_fya, zorder=<NUM_LIT:9>, **style_guess)<EOL><DEDENT>gya = self._evaluate_f (n, fxa, self._pguess)<EOL>a2.plot(fxa, gya-d_fya, zorder=<NUM_LIT:9>, **style_guess)<EOL>[fxt] = _s.fun.trim_data_uber([fxt], [fxt>=min(xt), fxt<=max(xt)])<EOL><DEDENT>if self['<STR_LIT>'][n] and self.bg[n] is not None:<EOL><INDENT>bg_gyt = self._evaluate_bg(n, fxt, self._pguess)<EOL>a2.plot(fxt, bg_gyt-d_fyt, zorder=<NUM_LIT:9>, **self['<STR_LIT>'][n])<EOL><DEDENT>gyt = self._evaluate_f (n, fxt, self._pguess)<EOL>a2.plot(fxt, gyt-d_fyt, zorder=<NUM_LIT:9>, **self['<STR_LIT>'][n])<EOL><DEDENT>if not self.results == None:<EOL><INDENT>if self['<STR_LIT>'][n]:<EOL><INDENT>style_fit = dict(self['<STR_LIT>'][n]); style_fit['<STR_LIT>'] = <NUM_LIT><EOL>if self['<STR_LIT>'][n] and self.bg[n] is not None:<EOL><INDENT>bg_fya = self._evaluate_bg(n, fxa, self.results[<NUM_LIT:0>])<EOL>a2.plot(fxa, bg_fya-d_fya, zorder=<NUM_LIT:10>, **style_fit)<EOL><DEDENT>fya = self._evaluate_f (n, fxa, self.results[<NUM_LIT:0>])<EOL>a2.plot(fxa, fya-d_fya, zorder=<NUM_LIT:10>, **style_fit)<EOL>[fxt] = _s.fun.trim_data_uber([fxt], [fxt>=min(xt), fxt<=max(xt)])<EOL><DEDENT>if self['<STR_LIT>'][n] and self.bg[n] is not None: <EOL><INDENT>bg_fyt = self._evaluate_bg(n, fxt, self.results[<NUM_LIT:0>])                    <EOL>a2.plot(fxt, bg_fyt-d_fyt, zorder=<NUM_LIT:10>, **self['<STR_LIT>'][n])<EOL><DEDENT>fyt = self._evaluate_f(n, fxt, self.results[<NUM_LIT:0>])<EOL>a2.plot(fxt, fyt-d_fyt, zorder=<NUM_LIT:10>, **self['<STR_LIT>'][n])<EOL><DEDENT>if self['<STR_LIT>'][n]: _s.tweaks.auto_zoom(axes=a2, draw=False)<EOL><DEDENT>if len(self.f):<EOL><INDENT>if self['<STR_LIT>'][n]:<EOL><INDENT>if self.results is None: <EOL><INDENT>p = self._pguess<EOL>style = style_guess<EOL><DEDENT>else:                    <EOL><INDENT>p = self.results[<NUM_LIT:0>]<EOL>style = style_fit<EOL><DEDENT>ra = (ya-self._evaluate_f(n, xa, p))/eya<EOL>a1.errorbar(xa, ra, _n.ones(len(ra)), **style_data)<EOL>a1.plot([min(xa), max(xa)], [<NUM_LIT:0>,<NUM_LIT:0>], **style)<EOL><DEDENT>if self.results is None: style = self['<STR_LIT>'][n]<EOL>else:                    style = self['<STR_LIT>'  ][n]<EOL>a1.errorbar (xt, rt[n], _n.ones(len(xt)), **self['<STR_LIT>'][n])<EOL>a1.plot([min(xt), max(xt)], [<NUM_LIT:0>,<NUM_LIT:0>], **style)<EOL><DEDENT>yticklabels = a1.get_yticklabels()<EOL>for m in range(<NUM_LIT:2>,len(yticklabels)-<NUM_LIT:2>): yticklabels[m].set_visible(False)<EOL>for m in a1.get_xticklabels(): m.set_visible(False)<EOL>if self['<STR_LIT>'][n] is None: a2.set_xlabel('<STR_LIT>'+str(n)+'<STR_LIT:]>')<EOL>else:                         a2.set_xlabel(self['<STR_LIT>'][n])<EOL>if self['<STR_LIT>'][n] is None:<EOL><INDENT>ylabel='<STR_LIT>'+str(n)+'<STR_LIT:]>'<EOL>if self['<STR_LIT>'][n] and self.bg[n] is not None:<EOL><INDENT>ylabel=ylabel+'<STR_LIT>'+str(n)+'<STR_LIT:]>'<EOL><DEDENT>a2.set_ylabel(ylabel)<EOL><DEDENT>else:                         a2.set_ylabel(self['<STR_LIT>'][n])<EOL>a1.set_ylabel('<STR_LIT>')<EOL>wrap = <NUM_LIT><EOL>indent = '<STR_LIT:U+0020>'<EOL>if n < len(self.f):<EOL><INDENT>t = _textwrap.fill('<STR_LIT>'+str(n)+'<STR_LIT:/>'+str(len(self._fnames)-<NUM_LIT:1>)+'<STR_LIT>'+self._fnames[n], wrap, subsequent_indent=indent)<EOL><DEDENT>else:<EOL><INDENT>t = "<STR_LIT>"<EOL><DEDENT>if len(self._cnames):<EOL><INDENT>t1 = "<STR_LIT>"<EOL>for i in range(len(self._cnames)):<EOL><INDENT>t1 = t1 + self._cnames[i] + "<STR_LIT>".format(self._constants[i])<EOL><DEDENT>t = t + '<STR_LIT:\n>' + _textwrap.fill(t1, wrap, subsequent_indent=indent)<EOL><DEDENT>if self.results and not self.results[<NUM_LIT:1>] is None:<EOL><INDENT>t1 = "<STR_LIT>"<EOL>for i in range(len(self._pnames)):<EOL><INDENT>t1 = t1 + self._pnames[i] + "<STR_LIT>".format(self._format_value_error(self.results[<NUM_LIT:0>][i], _n.sqrt(self.results[<NUM_LIT:1>][i][i]), '<STR_LIT>'))<EOL><DEDENT>t1 = t1 + '<STR_LIT>'.format(<EOL>self._format_value_error(self.reduced_chi_squared(), _n.sqrt(_n.divide(<NUM_LIT>,self.degrees_of_freedom())), '<STR_LIT>'), <EOL>int(self.degrees_of_freedom()))<EOL>t = t + '<STR_LIT:\n>' + _textwrap.fill(t1, wrap, subsequent_indent=indent)<EOL><DEDENT>elif self.results:<EOL><INDENT>t1 = "<STR_LIT>"<EOL>for i in range(len(self._pnames)):<EOL><INDENT>t1 = t1 + self._pnames[i] + "<STR_LIT>"<EOL><DEDENT>t = t + '<STR_LIT:\n>' + _textwrap.fill(t1, wrap, subsequent_indent=indent)<EOL><DEDENT>a1.set_title(t, fontsize=<NUM_LIT:10>, ha='<STR_LIT:left>', position=(<NUM_LIT:0>,<NUM_LIT:1>))<EOL>_p.ion()<EOL>if self.figures == None:<EOL><INDENT>_p.draw()<EOL>_p.show()<EOL><DEDENT><DEDENT>return self<EOL>
This will plot the data (with error) for inspection.

Setting self.figures to a figure instance or list of figure instances
will override the creation of new figures. If you specify
a list, its length had better be at least as large as the
number of data sets.

kwargs will update the settings