sherpa.astro.ui.reg_proj(par0, par1, id=None, otherids=None, replot=False, fast=True, min=None, max=None, nloop=(10, 10), delv=None, fac=4, log=(False, False), sigma=(1, 2, 3), levels=None, numcores=None, overplot=False)

Plot the statistic value as two parameters are varied.

Create a confidence plot of the fit statistic as a function of parameter value. Dashed lines are added to indicate the current statistic value and the parameter value at this point. The parameter value is varied over a grid of points and the free parameters re-fit. It is expected that this is run after a successful fit, so that the parameter values are at the best-fit location.

  • par1 (par0,) – The parameters to plot on the X and Y axes, respectively.
  • id (str or int, optional) –
  • otherids (list of str or int, optional) – The id and otherids arguments determine which data set or data sets are used. If not given, all data sets which have a defined source model are used.
  • replot (bool, optional) – Set to True to use the values calculated by the last call to int_proj. The default is False.
  • fast (bool, optional) – If True then the fit optimization used may be changed from the current setting (only for the error analysis) to use a faster optimization method. The default is False.
  • min (pair of numbers, optional) – The minimum parameter value for the calcutation. The default value of None means that the limit is calculated from the covariance, using the fac value.
  • max (pair of number, optional) – The maximum parameter value for the calcutation. The default value of None means that the limit is calculated from the covariance, using the fac value.
  • nloop (pair of int, optional) – The number of steps to use. This is used when delv is set to None.
  • delv (pair of number, optional) – The step size for the parameter. Setting this over-rides the nloop parameter. The default is None.
  • fac (number, optional) – When min or max is not given, multiply the covariance of the parameter by this value to calculate the limit (which is then added or subtracted to the parameter value, as required).
  • log (pair of bool, optional) – Should the step size be logarithmically spaced? The default (False) is to use a linear grid.
  • sigma (sequence of number, optional) – The levels at which to draw the contours. The units are the change in significance relative to the starting value, in units of sigma.
  • levels (sequence of number, optional) – The numeric values at which to draw the contours. This over-rides the sigma parameter, if set (the default is None).
  • numcores (optional) – The number of CPU cores to use. The default is to use all the cores on the machine.
  • overplot (bool, optional) – If True then add the data to an exsiting plot, otherwise create a new plot. The default is False.

See also

Estimate patameter confidence intervals using the confidence method.
Estimate the confidence intervals using the covariance method.
Return the interval-projection object.
Calculate and plot the fit statistic versus fit parameter value.
Plot the statistic value as two parameters are varied.


The difference to reg_unc is that at each step, a fit is made to the remaining thawed parameters in the source model. This makes the result a more-accurate rendering of the projected shape of the hypersurface formed by the statistic, but the run-time is longer than, the results of reg_unc, which does not vary any other parameter. If there are no free parameters in the model, other than the parameters being plotted, then the results will be the same.


Vary the xpos and ypos parameters of the gsrc model component for all data sets with a source expression.

>>> reg_proj(gsrc.xpos, gsrc.ypos)

Use only the data in data set 1:

>>> reg_proj(gsrc.xpos, gsrc.ypos, id=1)

Only display the one- and three-sigma contours:

>>> reg_proj(gsrc.xpos, gsrc.ypos, sigma=(1, 3))

Display contours at values of 5, 10, and 20 more than the statistic value of the source model for data set 1:

>>> s0 = calc_stat(id=1)
>>> lvls = s0 + np.asarray([5, 10, 20])
>>> reg_proj(gsrc.xpos, gsrc.ypos, levels=lvls, id=1)

Increase the limits of the plot and the number of steps along each axis:

>>> reg_proj(gsrc.xpos, gsrc.ypos, id=1, fac=6, nloop=(41, 41))

Compare the ampl parameters of the g and b model components, for data sets ‘core’ and ‘jet’, over the given ranges:

>>> reg_proj(g.ampl, b.ampl, min=(0, 1e-4), max=(0.2, 5e-4),
...          nloop=(51, 51), id='core', otherids=['jet'])