Hello, how do I display the equation for a polyfit line on this plot?
466 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Charles Naegele
il 17 Mag 2018
Commentato: Nadir Bait Saleem
il 20 Nov 2023
if true
% code
end
p = polyfit(x,y,1);
d = polyval(p,x);
plot(x,d,'k--')
where x and y are columns of 9, averaged from 3 original sets of 9 data point columns each.
6 Commenti
Steven Lord
il 2 Giu 2021
One tweak is that you can include + in the format specifier itself to avoid "+ -<number>" while displaying the sign. Look at the linear term in txt1 and txt2.
a = 2;
b = -pi;
c = exp(1);
txt1 = sprintf('y = %.4f*x^2 +%.4f*x +%.4f', a, b, c)
txt2 = sprintf('y = %.4f*x^2 %+.4f*x %+.4f', a, b, c)
Risposta accettata
Image Analyst
il 17 Mag 2018
Use text() to display the equation on the graph:
grid on;
% Place equation in upper left of graph.
xl = xlim;
yl = ylim;
xt = 0.05 * (xl(2)-xl(1)) + xl(1)
yt = 0.90 * (yl(2)-yl(1)) + yl(1)
caption = sprintf('y = %f * x + %f', p(1), p(2));
text(xt, yt, caption, 'FontSize', 16, 'Color', 'r', 'FontWeight', 'bold');
11 Commenti
Più risposte (1)
the cyclist
il 17 Mag 2018
Modificato: the cyclist
il 17 Mag 2018
Here is an example of how you can do this.
There are more efficient ways (e.g. using polyval on both the min and max at the same time), but I thought this might be clearer.
rng default
N = 10; x = randn(N,1); y = x + 0.3*randn(N,1);
p = polyfit(x,y,1);
x_min = min(x); x_max = max(x);
d_min = polyval(p,x_min); d_max = polyval(p,x_max);
figure hold on scatter(x,y) plot([x_min x_max],[d_min d_max],'k--')
3 Commenti
the cyclist
il 17 Mag 2018
Ah, I misunderstood the question. I thought you wanted to graph the equation, and it was not working.
Vedere anche
Categorie
Scopri di più su Line Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!