用HSL模型等间隔分布色相(H)是图表配色的可靠方法:固定饱和度(S≈70%)和明度(L≈60%–75%),按数据量均分0°–360°色相环,避开红绿盲区,辅以明度/饱和度微调,并用CSS变量实现灵活复用。
用 HSL 色彩模型按色相(Hue)等间隔分布,是让图表颜色既丰富又易区分的可靠方法。关键不是堆砌高饱和度,而是控制好色相步长、保持饱和度(S)和明度(L)稳定,避免视觉冲突或可访问性问题。
H 实现均匀区分HSL 中,色相 H 是 0–360° 的环形值,人眼对色相变化最敏感。只要把 H 均匀切分(如 5 个数据就取 0°、72°、144°、216°、288°),再统一设为中等饱和度(比如 S: 70%)和适中明度(L: 60%),就能生成一组协调、不刺眼、彼此清晰可辨的颜色。
纯等分有时会撞上色觉障碍者难分辨的区域,比如红-绿轴(约 0°–120°)、蓝-紫过渡(240°–300°)。可以小范围避让或调整:
当数据超过 8–10 类,单靠色相均分会变拥挤。此时保留 H 主干节奏,再用 L 或 S 做二级区分:
定义一组 HSL 变量比硬写 HEX 更灵活,主题切换或 A/B 测试时只需改几个数值:
:root {
--chart-hue-step: 60;
--chart-sat: 70%;
--chart-light: 62%;
--c1: hsl(0, var(--chart-sat), var(--chart-light));
--c2: hsl(calc(var(--chart-hue-step) 1), var(--chart-sat), var(--chart-light));
--c3: hsl(calc(var(--chart-hue-step) 2), var(--chart-sat), var(--chart-light));
--c4: hsl(calc(var(--chart-hue-step) * 3), var(--chart-sat), var(--chart-light));
}
后续在 chart 元素中直接 color: var(--c3) 即可,增减类别只需加变量、调 step 值。