adding trendline to a plot
79 次查看(过去 30 天)
显示 更早的评论
Good Day,
Please how do I add trendline(s) to a certain straight line portion(s) of a plot and how to extend the trendline to touch y and or x axis and the y and or x axis value determined?
Another related question is that how do I insert horizontal line on a plot and extend it to touch y axis and the y axis value determined?
Thanks
Best regards,
Isa
采纳的回答
Image Analyst
2012-12-23
I'd fit the portion of the data you're interested in to a line using polyfit. Then use polyval to get the points on the line over the entire range that you're interested in. See this demo:
clc; % Clear the command window.
workspace; % Make sure the workspace panel is showing.
format longg;
format compact;
fontSize = 20;
% Define equation.
x = -2:20;
y = (x-2).^2;
% Plot it
plot(x,y, 'bo-', 'LineWidth', 3);
grid on;
title('y = (x-2).^2', 'FontSize', fontSize);
xlabel('X', 'FontSize', fontSize);
ylabel('Y', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
% Give a name to the title bar.
set(gcf,'name','Demo by ImageAnalyst','numbertitle','off')
% Fit the range fro 10 to 20 with a line.
limitedRange = 10:20;
coeffs = polyfit(x(limitedRange), y(limitedRange), 1)
% Define the range where we want the line
xFitting = 0:19; % Or wherever...
yFitted = polyval(coeffs, xFitting);
% Plot the fitted line over the specified range.
hold on; % Don't blow away prior plot
plot(xFitting, yFitted, 'ro-', 'LineWidth', 2);
legend('Original Data', 'Line Fit');
12 个评论
Ananya Roy
2017-2-20
Hi Isa,
I have similar problem as you had. Please let me know if you could solve that problem and how.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fit Postprocessing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!