You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab使用shadedErrorBar时无法使用默认以外的自定义颜色求助

问题原因

raacampbell/shadedErrorBar工具的lineProps参数仅对单字符的Matlab预设颜色(如'r'、'b')做了自动识别逻辑,直接传入十六进制颜色字符串时,工具无法自动判定该参数属于颜色属性,因此会解析失败。

可行解决方法

方法1:传入RGB三元组(兼容性最好,所有Matlab版本通用)

  1. 先将十六进制颜色转换为0~1取值范围的RGB三元组,示例如下:
% 转换十六进制颜色#A62EF4为RGB数组
lineColor = sscanf('#A62EF4','#%2x%2x%2x',[1 3])/255;
  1. 调用shadedErrorBar时,将颜色以属性键值对的形式传入lineProps参数:
ss = shadedErrorBar(x,tav,errbar,'lineProps',{'Color',lineColor},'transparent',true,'patchSaturation',0.08);

如果需要同时设置线型、线宽等其他线条属性,可以直接在元胞数组中追加参数:

ss = shadedErrorBar(x,tav,errbar,'lineProps',{'Color',lineColor,'LineWidth',2,'LineStyle','--'},'transparent',true,'patchSaturation',0.08);

方法2:R2019a及以上版本直接传入十六进制颜色

如果使用的是R2019a及更新的Matlab版本(原生支持十六进制颜色字符串作为Color属性值),可以直接按如下格式编写代码:

ss = shadedErrorBar(x,tav,errbar,'lineProps',{'Color','#A62EF4'},'transparent',true,'patchSaturation',0.08);
自定义阴影区域配色

如果需要同时修改阴影区域的配色,可以在调用函数后修改返回对象的patch属性:

% 沿用上面定义的lineColor作为阴影颜色,也可以替换为其他颜色值
ss.patch.FaceColor = lineColor;
% 也可以单独设置阴影的透明度,和patchSaturation参数效果一致
ss.patch.FaceAlpha = 0.08;

内容的提问来源于stack exchange,提问作者Yuval Toren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 22:27:06