Matlab修改线性回归线与数据点标记及颜色方法咨询
解决MATLAB fitlm绘图修改线条和标记样式的问题
你的两种方法报错原因分别是:
plot(mdl_2, 'og')报错是因为fitlm的plot方法不支持这种简写式的格式参数,它只接受名称-值对组的参数形式。p.Color='green'报错是因为plot返回的是图形对象数组,不是单个对象,直接访问数组的Color属性会触发错误。
下面提供两种可行的解决方法:
方法一:绘图时直接指定名称-值参数
使用plot.lm支持的名称-值对组,直接在绘图时定义拟合线和散点的样式:
mdl_2 = fitlm(bbb, aaa); % 指定拟合线颜色为绿色,散点标记为'o',标记边缘色为绿色 p = plot(mdl_2, 'FitLineColor', 'green', 'Marker', 'o', 'MarkerEdgeColor', 'green');
常用的参数还包括:
FitLineStyle:设置拟合线线型(如'--'虚线、':'点线)MarkerFaceColor:设置标记的填充色MarkerSize:设置标记大小
方法二:绘图后修改图形对象属性
先执行绘图获取对象数组,再遍历数组找到对应元素修改属性:
mdl_2 = fitlm(bbb, aaa); p = plot(mdl_2); % 遍历对象数组,分别修改拟合线和散点样式 for idx = 1:length(p) % 识别拟合线对象(Type为'line') if strcmp(p(idx).Type, 'line') p(idx).Color = 'green'; p(idx).LineStyle = '-'; % 可选,设置线型 % 识别散点对象(Type为'scatter') elseif strcmp(p(idx).Type, 'scatter') p(idx).Marker = 'o'; p(idx).MarkerFaceColor = 'lime'; % 设置标记填充色为亮绿色 end end
这种方法更灵活,适合需要精细调整多个图形元素的场景。
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

