I have 1700 plot of data in graph. How do I plot the line of best fit? I stored the x and y data in table and the plot them. From the graph, I can see that the graph plotting is upwards. I have read other answers for this kind of question but still confused. Please help. Thank you.
x = score;
y = MOS;
scatter(x,y)
xlabel('score')
ylabel('MOS')

 Akzeptierte Antwort

Image Analyst
Image Analyst am 15 Jan. 2018
Bearbeitet: Image Analyst am 10 Feb. 2021

20 Stimmen

Use polyfit() and polyval():
% Get coefficients of a line fit through the data.
coefficients = polyfit(x, y, 1);
% Create a new x axis with exactly 1000 points (or whatever you want).
xFit = linspace(min(x), max(x), 1000);
% Get the estimated yFit value for each of those 1000 new x locations.
yFit = polyval(coefficients , xFit);
% Plot everything.
plot(x, y, 'b.', 'MarkerSize', 15); % Plot training data.
hold on; % Set hold on so the next plot does not blow away the one we just drew.
plot(xFit, yFit, 'r-', 'LineWidth', 2); % Plot fitted line.
grid on;
See attached for a full demo.

4 Kommentare

Sidharth Thomas
Sidharth Thomas am 31 Mai 2018
Bearbeitet: Image Analyst am 10 Feb. 2021
Thanks. This works perfectly.
Sahil Bharti
Sahil Bharti am 22 Jul. 2021
Thanks. it was usefull to me as well
Miles
Miles am 11 Nov. 2023
Thank you!
John
John am 7 Mai 2025
Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jos (10584)
Jos (10584) am 15 Jan. 2018

9 Stimmen

if it is just for plotting, the command lsline would do.
x = 1:10 ; y = 2* x + 3 ;
plot(x, y, 'bo') ;
lsline

1 Kommentar

optoengineer2
optoengineer2 am 9 Feb. 2021
lsline works only with "Statistics and Machine Learning Toolbox"

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 15 Jan. 2018

Kommentiert:

am 7 Mai 2025

Community Treasure Hunt

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

Start Hunting!

Translated by