How to display fit equation on plot?

540 views (last 30 days)
Christopher on 17 Nov 2013
Answered: GILBERT ALVIOLA on 24 Jul 2017
Hello all,
I have written code that creates a power fit to some data. The code is :
p=polyfit(log(pla_strain),log(pla_stress),1);
m=p(1);
b=exp(p(2));
yy=b.*(pla_strain).^m;
I think plot the data with the fit as follows:
loglog(pla_strain,pla_stress,'LineWidth',4)
hold on
plot(pla_strain,yy,'r--','LineWidth',2)
axis([.001 .1 40 100])
hold off
My problem is I am trying to display the equation of the fit on the plot. The equation is of the form y=b*x^m where b and m are the two coefficients from the polyfit. I would like to display this equation in the same location of the plot every time, which would ideally be towards the top center.
Thanks

G A on 18 Nov 2013
txt1='b*x^m';
yL=get(gca,'YLim');
xL=get(gca,'XLim');
text((xL(1)+xL(2))/2,yL(2),txt1,...
'HorizontalAlignment','left',...
'VerticalAlignment','top',...
'BackgroundColor',[1 1 1],...
'FontSize',12);

Image Analyst on 18 Nov 2013
You're going to have to convert the x and yy back into pla_strain and pla_stress so you can plot them
x = log(pla_strain);
pla_strain_fitted = exp(x);
yy = m .* x + b; % This equals log(pla_stress)
pla_stress_fitted = exp(yy);
loglog(pla_strain_fitted, pla_stress_fitted, 'LineWidth',4)

GILBERT ALVIOLA on 24 Jul 2017
Something like this... where x and y specifies the position
txt1 = ['y = (' num2str(m) ')x + (' num2str(a) ')']; text(x, y, txt1);

Community Treasure Hunt

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

Start Hunting!

Translated by