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.

Introduced before R2006a