MATLAB Answers

Change width on fitted line in function fitlm

1 view (last 30 days)
Vlatko Milic
Vlatko Milic on 21 Nov 2019
Commented: dpb on 22 Nov 2019
Hi,
I can't change the witdh on a fitted line based on X number of data points when I use fitlm-function. I am only able to change the width of the data points themselves.
Do you have any ideas?
The code is:
mdl=fitlm(T(Index,3),F);
plot(mdl)
title(strcat(subfoldernames))
Kind regards, Vlatko

  0 Comments

Sign in to comment.

Accepted Answer

dpb
dpb on 21 Nov 2019
Yeah, save the handles returned by plot for the linear model fit...
mdl=fitlm(T(Index,3),F);
hMDL=plot(mdl);
hFIT=findobj(hMDL,'DisplayName','Fit');
hFIT.LineWidth=1;
...
You can find this out by returning the handle array from plot and see that it is a four-handle array...and example here was
>> load carsmall % MATLAB sample data set
>> lm=fitlm(MPG,Weight); % fit a simple model
>> figure
>> hLM=plot(lm) % plot it, return handles array
hLM =
4×1 Line array:
Line (Data)
Line (Fit)
Line (Confidence bounds)
Line
>> hLM(2).LineWidth % the fit is the second handle in the arrray; query it
ans =
0.50
>> hLM(2).LineWidth=1; % set it to new value
>>

  5 Comments

Show 2 older comments
dpb
dpb on 21 Nov 2019
TMW only set a value for 'DisplayName' on one of the two confidence bounds lines so wouldn't have duplicates in the legend box.
The two confidence lines are the last two in the array; you have to set both to change both. You can only set one handle at a time using dot notation; set() the function will let you do both in a single call.
Vlatko Milic
Vlatko Milic on 22 Nov 2019
Thank you! However, I don't really follow the last line:" set() the function will let you do both in a single call".
What should I set?
dpb
dpb on 22 Nov 2019
'linewidth' property
set(hLM(3:4),'LineWidth',1); % set both confidence lines same time
See doc set for details...

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Tags