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

Matlab绘图:如何为24条曲线分配可区分的不同颜色?

解决Matlab多曲线重复颜色的问题

嗨,这个问题我之前处理过好多次,Matlab默认的颜色循环确实只有有限的几种(不同版本可能是7或10种左右),当曲线数量到24条时肯定会重复,很难区分。给你几个实用的解决方案,都能轻松搞定这个问题:

方法1:利用内置Colormap生成独特颜色

Matlab提供了很多感知均匀的colormap(比如viridis、parula),可以直接提取N个颜色来分配给每条曲线,这种配色对视觉友好,颜色差异明显:

% 生成24个独特的颜色,这里用viridis配色(推荐,比jet更柔和且区分度高)
colors = colormap(viridis(24)); 

hold on
for i=1:24
    plot(time(1:350), STDX(1:350,i), 'lineWidth', 3, 'Color', colors(i,:))
end
hold off

你也可以把viridis换成cool、autumn或者其他你喜欢的colormap,根据需求调整就行。

方法2:用HSV颜色空间生成均匀色相的颜色

如果想要更鲜艳、分布更均匀的颜色,可以直接操作HSV颜色空间,固定饱和度和亮度,只变化色相,这样生成的颜色在色相环上均匀分布,每条曲线的颜色差异非常明显:

% 生成24个均匀分布的色相值(0到1覆盖所有色相)
h = linspace(0, 1, 24+1); % 加1是为了避免首尾颜色重复
h = h(1:24); % 取前24个色相值

% 转换为RGB颜色,固定饱和度0.8,亮度0.9,保证颜色鲜艳统一
colors = hsv2rgb([h', ones(24,1)*0.8, ones(24,1)*0.9]); 

hold on
for i=1:24
    plot(time(1:350), STDX(1:350,i), 'lineWidth', 3, 'Color', colors(i,:))
end
hold off

方法3:修改默认颜色循环(一劳永逸)

如果你经常需要绘制大量曲线,可以直接修改Matlab的全局默认颜色循环,这样后续所有绘图都会自动使用这组颜色,不用每次手动指定:

% 设置全局默认颜色循环为24个viridis配色
set(groot, 'DefaultAxesColorOrder', colormap(viridis(24)));

% 之后直接绘图即可,颜色会自动依次分配
hold on
for i=1:24
    plot(time(1:350), STDX(1:350,i), 'lineWidth', 3)
end
hold off

小技巧

如果还是担心部分颜色接近,可以给部分曲线加上不同的线型(比如'--'、':')或者标记(比如'o'、'x'),配合粗线使用,区分度会更高。另外记得添加图例时,给每条曲线设置对应的标签,方便识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:25:45