Plot smoothing line without points

Hey,
can i just plot the smoothing line without the scatter points? And is it possible to get just the Data of the smoothing line to plot more than one line in one figure?
Thank you!

1 个评论

What do you mean by smoothing line? You can take the information from polyfit and use that if it's some polynomial fit, but I'm not sure what your model looks like. I'm also not sure what the second question means.

请先登录,再进行评论。

 采纳的回答

I am not certain what you wnat to do.
Taking a guess —
N = 20;
x = sort(randn(1,N));
y = randn(1,N);
xs = linspace(min(x), max(x), 10*N);
ys = interp1(x, y, xs, 'spline'); % Interpolate Using 'spline'
figure
subplot(2,1,1)
plot(x, y, '.')
hold on
plot(xs, ys)
hold off
grid
axis('padded')
title('With Points')
subplot(2,1,2)
plot(xs, ys)
grid
axis('padded')
title('Without Points')
To plot more than one line in one axes, use the hold function. To plot more than one axes in one figure, use subplot, tiledlayout, or stackedplot, depending on what you want to do. (I have illustrated a version all those here.)
.

5 个评论

Thank you very much for your efforts.
Your answer already goes in the right direction. I have several data sets that have a large number of measuring points. I would like to generate a trend line from all six data sets and display it in a diagram. In this diagram, only the trend lines and not the points should be visible. Unfortunately, with the Curve Fit Tool only one curve is possible at a time and the scatter points are visible.
I have tried your answer, but I always get errors. As X-values I have converted dates into numbers with datenum.
Thanks again for the help!
Error using matlab.internal.math.interp1
Sample points must be unique.
Error in interp1 (line 188)
VqLite = matlab.internal.math.interp1(X,V,method,method,Xqcol);
Error in Skript02 (line 67)
ys1 = interp1(x,y,xs1,'spline');
This is the errormessage....
My pleasure!
I was not certain what you meant by ‘smoothing line’.
To calculate a linear regression for all the points, the correct approach would be to use the polyfit and polyval functions —
N = 20;
x = randn(1,N);
y = randn(1,N);
xs = linspace(min(x), max(x), 10*N);
b = polyfit(x,y,1);
ys = polyval(b, xs);
figure
subplot(2,1,1)
plot(x, y, '.')
hold on
plot(xs, ys)
hold off
grid
axis('padded')
title('With Points')
subplot(2,1,2)
plot(xs, ys)
ylim([min(y) max(y)])
grid
% axis('padded')
title('Without Points')
The polyfit function can also fit polynomials of integer degrees greater than 1.
.
Thank you very much! You helped me a lot!
As always, my pleasure!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Smoothing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by