How to plot best fit line?

3,100 次查看(过去 30 天)
fzhmktr
fzhmktr 2018-1-15
评论: Miles 2023-11-11
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')

采纳的回答

Image Analyst
Image Analyst 2018-1-15
编辑:Image Analyst 2021-2-10
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.

更多回答(3 个)

Jos (10584)
Jos (10584) 2018-1-15
if it is just for plotting, the command lsline would do.
x = 1:10 ; y = 2* x + 3 ;
plot(x, y, 'bo') ;
lsline
  1 个评论
optoengineer2
optoengineer2 2021-2-9
lsline works only with "Statistics and Machine Learning Toolbox"

请先登录,再进行评论。


Veer Gatha
Veer Gatha 2021-5-18
x = {1;3;5;7;8};
y = {1;4;6;8;0};
scatter(x,y)
xlabel('score')
ylabel('MOS')

Ravisha Gunawardhana
This command doesn't work, You have to put square brackets for the graph to be plotted otherwise an error occurs.
  1 个评论
Image Analyst
Image Analyst 2022-10-12
@Ravisha Gunawardhana What command? There is lots of code and commands shown above. Who are you replying to? Are you commenting on someone's answer, or answering the original poster, @fzhmktr?
Where do you say someone needs square brackets? If the original poster is right that x and y are table variables then I think he'll have to use a dot to get the particular column he wants to plot since scatter() can't take a table variable as an input.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by