Documentation

# plot

Plot `cfit` or `sfit` object

## Syntax

```plot(sfit) plot(sfit, [x, y], z) plot(sfit, [x, y], z, 'Exclude', outliers) H = plot(sfit, ..., 'Style', Style) H = plot(sfit, ..., 'Level', Level) H = plot(sfit, ..., 'XLim', XLIM) H = plot(sfit, ..., 'YLim', YLIM) H = plot(sfit, ...) H = plot(sfit, ..., 'Parent', HAXES ) plot(cfit) plot(cfit,x,y) plot(cfit,x,y,DataLineSpec) plot(cfit,FitLineSpec,x,y,DataLineSpec) plot(cfit,x,y,outliers) plot(cfit,x,y,outliers,OutlierLineSpec) plot(...,ptype,...) plot(...,ptype,level) h = plot(...) ```

## Description

For surfaces:

• `plot(sfit)` plots the `sfit` object over the range of the current axes, if any, or otherwise over the range stored in the fit.

• `plot(sfit, [x, y], z)` plots z versus x and y and plots `sfit` over the range of x and y.

• `plot(sfit, [x, y], z, 'Exclude', outliers)` plots the excluded data in a different color. `outliers` can be an expression describing a logical vector, e.g., ```x > 10```, a vector of integers indexing the points you want to exclude, e.g., `[1 10 25]`, or a logical array where `true` represents an outlier. You can create the array with `excludedata`.

• `H = plot(sfit, ..., 'Style', Style)` selects which way to plot the surface fit object `sfit`.

`Style` may be any of the following character vectors

• `'Surface'` Plot the fit object as a surface (default)

• `'PredFunc'` Surface with prediction bounds for function

• `'PredObs'` Surface with prediction bounds for new observation

• `'Residuals'` Plot the residuals (fit is the plane Z=0)

• `'Contour'` Make a contour plot of the surface

• `H = plot(sfit, ..., 'Level', Level)` sets the confidence level to be used in the plot. `Level` is a positive value less than 1, and has a default of 0.95 (for 95% confidence). This option only applies to the `'PredFunc'` and `'PredObs'` plot styles.

• `H = plot(sfit, ..., 'XLim', XLIM)` and ```H = plot(sfit, ..., 'YLim', YLIM)``` sets the limits of the axes used for the plot. By default the axes limits are taken from the data, `XY`. If no data is given, then the limits are taken from the surface fit object, `sfit`.

• `H = plot(sfit, ...)` returns a vector of handles of the plotted objects.

• `H = plot(sfit, ..., 'Parent', HAXES )` plots the fit object `sfit` in the axes with handle HAXES rather than the current axes. The range is taken from these axes rather than from the fit or the data.

For curves:

• `plot(cfit)` plots the `cfit` object over the domain of the current axes, if any. If there are no current axes, and `fun` is an output from the `fit` function, the plot is over the domain of the fitted data.

• `plot(cfit,x,y)` plots `cfit` together with the predictor data `x` and the response data `y`.

• `plot(cfit,x,y,DataLineSpec)` plots the predictor and response data using the color, marker symbol, and line style specified by the `DataLineSpec` formatting character vector. `DataLineSpec` character vectors take the same values as `LineSpec` character vectors used by the MATLAB® `plot` function.

• `plot(cfit,FitLineSpec,x,y,DataLineSpec)` plots `fun` using the color, marker symbol, and line style specified by the `FitLineSpec` formatting character vector, and plots `x` and `y` using the color, marker symbol, and line style specified by the `DataLineSpec` formatting character vector. `FitLineSpec` and `DataLineSpec` character vectors take the same values as `LineSpec` character vectors used by the MATLAB `plot` function.

• `plot(cfit,x,y,outliers)` plots data indicated by `outliers` in a different color. `outliers` can be an expression describing a logical vector, e.g., `x > 10`, a vector of integers indexing the points you want to exclude, e.g., ```[1 10 25]```, or a logical array where `true` represents an outlier. You can create the array with `excludedata`.

• `plot(cfit,x,y,outliers,OutlierLineSpec)` plots `outliers` using the color, marker symbol, and line style specified by the `OutlierLineSpec`. `OutlierLineSpec` character vectors take the same values as `LineSpec` character vectors used by the MATLAB `plot` function.

`plot(...,ptype,...)` uses the plot type specified by `ptype`. Supported plot types are:

• `'fit'` — Data and fit (default)

• `'predfunc'` — Data and fit with prediction bounds for the fit

• `'predobs'` — Data and fit with prediction bounds for new observations

• `'residuals'` — Residuals

• `'stresiduals'` — Standardized residuals (residuals divided by their standard deviation).

• `'deriv1'` — First derivative of the fit

• `'deriv2'` — Second derivative of the fit

• `'integral'` — Integral of the fit

• `plot(...,ptype,level)` plots prediction intervals with a confidence level specified by `level`. `level` must be between `0` and `1`. The default value of `level` is `0.95`.

For both curves and surfaces:

• Plot types can be single or multiple, with multiple plot types specified as a cell array of character vectors. With a single plot type, `plot` draws to the current axes and can be used with commands like `hold` and `subplot`. With multiple plot types, `plot` creates subplots for each plot type.

• `h = plot(...)` returns a vector of handles to the plotted objects.

## Examples

Create a baseline sinusoidal signal:

```xdata = (0:0.1:2*pi)'; y0 = sin(xdata);```

Add noise to the signal with non-constant variance:

```% Response-dependent Gaussian noise gnoise = y0.*randn(size(y0)); % Salt-and-pepper noise spnoise = zeros(size(y0)); p = randperm(length(y0)); sppoints = p(1:round(length(p)/5)); spnoise(sppoints) = 5*sign(y0(sppoints)); ydata = y0 + gnoise + spnoise;```

Fit the noisy data with a baseline sinusoidal model:

```f = fittype('a*sin(b*x)'); fit1 = fit(xdata,ydata,f,'StartPoint',[1 1]);```

Identify “outliers” as points at a distance greater than 1.5 standard deviations from the baseline model, and refit the data with the outliers excluded:

```fdata = feval(fit1,xdata); I = abs(fdata - ydata) > 1.5*std(ydata); outliers = excludedata(xdata,ydata,'indices',I); fit2 = fit(xdata,ydata,f,'StartPoint',[1 1],... 'Exclude',outliers);```

Compare the effect of excluding the outliers with the effect of giving them lower bisquare weight in a robust fit:

`fit3 = fit(xdata,ydata,f,'StartPoint',[1 1],'Robust','on');`

Plot the data, the outliers, and the results of the fits:

```plot(fit1,'r-',xdata,ydata,'k.',outliers,'m*') hold on plot(fit2,'c--') plot(fit3,'b:') xlim([0 2*pi])``` Plot the residuals for the two fits considering outliers:

```figure plot(fit2,xdata,ydata,'co','residuals') hold on plot(fit3,xdata,ydata,'bx','residuals')``` Load data and fit a Gaussian, excluding some data with an expression, then plot the fit, data and the excluded points.

```[x, y] = titanium; f1 = fit(x',y','gauss2', 'Exclude', x<800); plot(f1,x,y,x<800)```

For more examples excluding data and plotting fits, see `fit`.

## See Also

### Functions

#### Machine Learning Challenges: Choosing the Best Classification Model and Avoiding Overfitting

Download white paper