function lsscatter(x,y,fitted,attrib)

%LSSCATTER makes a scatter plot with regression (LTS/LS) line
%
% Required input arguments:
%      x : predictor variabele (without missing values)
%      y : response variabele
% fitted : fitted values corresponding with the regression
% attrib : string identifying the used method =  'LS', 'LTS'
%
% I/O: lsscatter(x,y,fitted,attrib)
%
% This function is part of LIBRA: the Matlab Library for Robust Analysis,
% available at: 
%              http://wis.kuleuven.be/stat/robust.html
%
% Written by Nele Smets on : 26/11/2003
% Last Update: 29/01/2008


set(gcf,'Name', 'Scatter plot', 'NumberTitle', 'off');
[n,p]=size(x);
if p~=1 
    disp(['Scatter plot with regression line ',...
            'is only available for bivariate data'])
else
    x1 = x(1);
    xn = x(n);
    y1 = fitted(1);
    yn = fitted(n);
    dx = xn - x1;
    dy = yn - y1;
    slope = dy./dx;
    centerx = (x1 + xn)/2;
    centery = (y1 + yn)/2;
    maxx = max(x);
    minx = min(x);
    maxy = centery + slope.*(maxx - centerx);
    miny = centery - slope.*(centerx - minx);
    mx = [minx; maxx];
    my = [miny; maxy];  
    plot(x,y,'o'); 
    hold on
    xrange=0.1*(abs(maxx-abs(minx)));
    yrange=0.2*(abs(maxy-abs(miny)+5));
    xlim([minx-xrange maxx+xrange])
    ylim([min(y)-yrange max(y)+yrange])
    plot(mx,my,'-');
    title(attrib)
    hold off
end

 