Azzera filtri
Azzera filtri

linear fit

1.373 visualizzazioni (ultimi 30 giorni)
Richard
Richard il 31 Gen 2012
Commentato: Seth DeLand il 25 Mag 2022
When plotting a scatter plot is it possible to add a linear fit to the the graph without having to go into tools-> basic fitting and clicking on linear and show equations?

Risposta accettata

Wayne King
Wayne King il 1 Feb 2012
lsline is in the Statistics Toolbox, if you do not have that product you can use polyfit() to fit a 1st order polynomial.
x = 1:10;
y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
P = polyfit(x,y1,1);
yfit = P(1)*x+P(2);
hold on;
plot(x,yfit,'r-.');
  5 Commenti
Galina Machavariani
Galina Machavariani il 2 Set 2021
Thank you for the answer.
And how can I display linear fit equation on the graph?
I mean not "manual" way in the graph editor, , but the code ...
Thank you !
Seth DeLand
Seth DeLand il 25 Mag 2022
You would need to create the string of the equation and then place it on the graph with "text". Here is an expanded version of Wayne's example that does this:
x = 1:10;
y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
P = polyfit(x,y1,1);
yfit = polyval(P,x);
hold on;
plot(x,yfit,'r-.');
eqn = string(" Linear: y = " + P(1)) + "x + " + string(P(2));
text(min(x),max(y1),eqn,"HorizontalAlignment","left","VerticalAlignment","top")

Accedi per commentare.

Più risposte (5)

Thomas
Thomas il 31 Gen 2012
Also you can always do it once manually, generate data set, create the plot, make the linear fit with the equations, then in the Figure window
File>Generate code..
This will create a MATLAB function for everything that you did manually and can use it again and again if you have more data sets.
  1 Commento
Galina Machavariani
Galina Machavariani il 2 Set 2021
After I did linear fit with equation, What should I write in the command window to generate the code?

Accedi per commentare.


Wayne King
Wayne King il 31 Gen 2012
Hi, yes, you can use lsline()
x = 1:10;
y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
hold on;
lsline;
  4 Commenti
Richard
Richard il 1 Feb 2012
>> clear all
>> x = 1:10;
y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
hold on;
lsline;
Undefined function or variable 'lsline'.
vkehayas
vkehayas il 30 Set 2016
The statistics toolbox is required for
lsline

Accedi per commentare.


Annu Panwar
Annu Panwar il 13 Set 2017
but anyone has observed that the results are different when you do polyfit by using codes and manually?
  2 Commenti
Danhay
Danhay il 6 Mar 2018
that is true. I observed that too
Namira
Namira il 11 Ago 2018
I observed that too. Do you know the solution?

Accedi per commentare.


sabreen haj
sabreen haj il 27 Apr 2018
Can you help me to write script for calibration curve And give me the equation so i can finde the x value then the result shown in a table with everage of 3 x value and std

Marcello Wienhoven
Marcello Wienhoven il 11 Gen 2021
x = 1:10;
y1 = x + randn(1,10);
scatter(x,y1,25,'b','*')
P = polyfit(x,y1,1);
yfit = P(1)*x+P(2);
hold on;
plot(x,yfit,'r-.');
  1 Commento
Galina Machavariani
Galina Machavariani il 2 Set 2021
Thank you for the answer.
And how can I display linear fit equation on the graph?
I mean not "manual" way in the graph editor, , but the code ...
Thank you !

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by