Creating a scatter plot with smooth lines and markers?
显示 更早的评论
Hello, I am trying to create a scatter plot with smooth lines and markers in Matlab, as I can do easily in Excel. I do not think there is a way to use the scatter command to do this, so I'm asking if there is another way to plot the data in the same way (scatter format) but with smooth lines and markers? Thank you.
Ashley
4 个评论
matt dash
2014-12-16
Can you clarify what you mean by "smooth"? Are you talking about smoothing the data, like a moving average, or just visually smooth graphics objects (like anti-aliased), or something else?
Ashley
2014-12-18
Chetan Rawal
2014-12-18
I am not quite sure what you mean by a line connecting all points. Scatter diagram by definition places points on the plot.
1) If you are looking for a line connecting the points, use the plot command instead
>>plot(x,y,'-o')
2) If you want a smooth line that best fits through all your points (but not necessarily passes through them), then you need to do curve fitting . If you want a smooth line passing through all points, try using splines .
Ashley
2014-12-18
采纳的回答
更多回答(2 个)
Scott Webster
2014-12-18
You can use both the scatter and line commands like this...
x = [1 2 3]
y = [1 3 9]
scatter(x,y)
hold on
line(x,y)
xlim([0 4])
ylim([0 10])

2 个评论
Ashley
2014-12-18
Scott Webster
2014-12-19
Sounds like maybe you are not sorting correctly. Anyway, here are three examples in case it helps:
%%plot 1
figure
x = [1 2 3 1.5];
y = [1 4 9 5];
scatter(x,y)
hold on
line(x,y)
xlim([0 4])
ylim([0 10])

%%plot 2
figure
sorted=sortrows([x' y']);
sorted_x = sorted(:,1);
sorted_y = sorted(:,2);
scatter(sorted_x,sorted_y)
hold on
line(sorted_x,sorted_y)
xlim([0 4])
ylim([0 10])

%%plot 3
figure
fitx=linspace(0,4,100);
fity = interp1(sorted_x,sorted_y,fitx,'spline');
scatter(sorted_x,sorted_y)
hold on
line(fitx,fity)
xlim([0 4])
ylim([0 10])

类别
在 帮助中心 和 File Exchange 中查找有关 Scatter Plots 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


