How to plot Multiple trend-lines on one scatter plot
Mostrar comentarios más antiguos
Hi every one,
I have a scatter plot and I need to do a second order trend line for some part of my data (just for the values less than 15 or 10 on x axis). Do you know how can I do that?

Respuestas (1)
You can pick those respective points and fit a curve to plot the trend. Let x,y be your points.
x1 = x(x<=15) ; % pick points less than 15
y1 = y(x<=15) ;
p1 = polyfit(x1,y1,1) ; % Fit a line
figure
hold on
plot(x,y,'.k')
plot(x1,polyval(p1,x1),'r')
11 comentarios
Same thin, pick those points and fit a curve again.
x2 = x(x>15) ;
y2 = y(x>15) ;
p2 = polyfit(x2,y2,1) ;
Note: I have edited the answer, there were few typo errors.
Nicky T
el 13 de Sept. de 2020
KSSV
el 14 de Sept. de 2020
You have to take continuous x-data to join them. In here you have taken different values. Show the code which you tried.
Image Analyst
el 14 de Sept. de 2020
I think you meant 2 in polyfit(), and p1 in polyval().
p1 = polyfit(x1,y1,2) ; % Fit a second order polynomial
figure
hold on
plot(x,y,'.k')
plot(x1,polyval(p1,x1),'r') % p1, not p
KSSV
el 14 de Sept. de 2020
@Image Analyst..yes..corrected it.
Image Analyst
el 14 de Sept. de 2020
Nicky, please draw what you want in red over your scatterplot. And since you seem to have three separate trends (2 flat and one curved), why do you want their endpoints connected?
Nicky T
el 14 de Sept. de 2020
KSSV
el 14 de Sept. de 2020
What are values of tRet, tSupp ??
Nicky T
el 14 de Sept. de 2020
Categorías
Más información sobre Get Started with Curve Fitting Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
