lsline

Add least-squares line to scatter plot

Syntax

lsline
lsline(ax)
h = lsline(___)

Description

lsline superimposes a least-squares line on each scatter plot in the current axes. Scatter plots are produced by the MATLAB® scatter and plot functions. Data points connected with solid, dashed, or dash-dot lines ('-', '--', or '.-') are not considered to be scatter plots by lsline, and are ignored.

lsline(ax) superimposes a least-squares line on the scatter plot in axis ax.

h = lsline(___) returns a column vector of handles h to the least-squares lines, using any of the previous syntaxes.

Examples

expand all

Plot a Least-Squares Line

Generate three sets of sample data and plot on the same figure.

x = 1:10;
rng default;  % For reproducibility
figure;

y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
hold on

y2 = 2*x + randn(1,10);
plot(x,y2,'mo')

y3 = 3*x + randn(1,10);
plot(x,y3,'rx:')

Add a least-squares line for each set of sample data.

lsline

Specify Axes for Least-Squares and Reference Lines

Define the x-variable and two different y-variables to use for the plots.

rng default  % For reproducibility
x = 1:10;
y1 = x + randn(1,10);
y2 = 2*x + randn(1,10);

Define ax1 as the top half of the figure, and ax2 as the bottom half of the figure. Create the first scatter plot on the top axis using y1, and the second scatter plot on the bottom axis using y2.

figure
ax1 = subplot(2,1,1);
ax2 = subplot(2,1,2);

scatter(ax1,x,y1)
scatter(ax2,x,y2)

Superimpose a least-squares line on the top plot, and a reference line at the mean of the y2 values in the bottom plot.

lsline(ax1)

mu = mean(y2);
refline(ax2,[0 mu])

See Also

| | | |

Was this topic helpful?