Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

how to smooth scatter plots like excel?

Asked by Shadi

Shadi (view profile)

on 29 Apr 2013

I'd like to plot a set of simple data with a 'smooth curve' just as excel does. I can use matlab's "scatter(x,y)' feature but I'd like to have the data points connected. Can anyone help?


omid jab

omid jab (view profile)

on 29 Apr 2013

It's not posible using "scatter". you could test another.

Zhang lu

Zhang lu (view profile)

on 29 Apr 2013

do you mean 'plot(x,y,'-*')' ?


Shadi (view profile)


No products are associated with this question.

1 Answer

Answer by Image Analyst

Image Analyst (view profile)

on 29 Apr 2013

You could try splines, like in my demo:

% Demo to show spline interpolation.
close all; 
clear all; 
workspace; % Display workspace panel.
% Plot the original points.
x = 1:10;
y = rand (10,1);
% Plot it and show how the line has sharp bends.
plot(x, y, '-sr', 'LineWidth', 2);
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
% Use splines to interpolate a smoother curve
% that goes exactly through the same data points.
samplingRateIncrease = 10;
newXSamplePoints = linspace(1, 10, 10 * samplingRateIncrease);
smoothedY = spline(x, y, newXSamplePoints);
hold on; % Don't destroy the first curve we plotted.
% Plot smoothedY and show how the line is
% smooth and has no sharp bends.
plot(newXSamplePoints, smoothedY, '-ob');
title('Spline Interpolation Demo', 'FontSize', 20);
legend('Original Points', 'Spline Points');
% Mathworks Demo code from their Help
% x = 0:10;
% y = sin(x);
% xx = 0:.25:10;
% yy = spline(x,y,xx);
% plot(x,y,'o',xx,yy)


Image Analyst

Image Analyst (view profile)

Contact us