Back to skills
SKILL.md
Paper Figure Palette
ASecurity统一配色体系:按数据类型与场景选色板落地。触发词:配色、色板、palette、上色、协调、色带、colormap、墨色、图表美化、figure color、色盲友好、colorblind、CVD、灰度打印、无障碍、Okabe-Ito、Paul Tol、viridis、cividis、RdBu、期刊投稿图配色、黑白打印可读、配色移到 Word/PPT/Excel、jet 色带能不能用。
- 10 stars
- 0 votes
- 0 copies
- 0 views
- Added September 24, 2026
Security analysis
100/100Pro scans all 9 files and shows the line behind each finding
npx -y skills add FOURTEEN1416/academic-agent-toolkit --skill paper-figure-palette --agent claude-codeAre you the author of Paper Figure Palette?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/fourteen1416-paper-figure-palette)---
name: paper-figure-palette
description: "统一配色体系:按数据类型与场景选色板落地。触发词:配色、色板、palette、上色、协调、色带、colormap、墨色、图表美化、figure color、色盲友好、colorblind、CVD、灰度打印、无障碍、Okabe-Ito、Paul Tol、viridis、cividis、RdBu、期刊投稿图配色、黑白打印可读、配色移到 Word/PPT/Excel、jet 色带能不能用。"
agent_created: true
---
# 统一论文图表配色体系(多场景 · paper-figure-palette)
一套**先定类型、再定场景**的配色体系。核心是两句话:
1. **类型优先于色值**:先判断数据是分类 / 单向连续 / 有零点(发散),再选具体色板——类型选错,
任何美化都救不回来。
2. **三层分工**:色板承担填充与色带;线条、描边、图例文字交给同色相**墨色**系统。
本地 8 色对白底对比度仅 1.3–2.1:1,**严禁直接作文字色或细线色**。
## 0. 真源与工具(动手前先定位)
| 资源 | 路径 | 用途 |
|---|---|---|
| **场景与规范真源(先读这个)** | `references/scenarios.md` | 三步选色法、5 场景 × 色板映射、10 条规范、禁用清单 |
| **色板注册表(机器真源)** | `assets/palette_registry.json` | 9 套色板的色值/类型/CVD 契约/场景映射 |
| 本地色板真源 | `assets/palette_v6.json` | 8 色 LCH 量测、墨色映射、色带端点 |
| 工具脚本 | `scripts/palette_kit.py` | `registry-verify` 注册表体检 / `check` 本地体检 / `hex` 列色值 / `preview` 出色卡 |
| 原理详解 | `references/color-system.md` | 为什么这样设计(LCH、两族、单调性) |
| 移植配方 | `references/recipes.md` | matplotlib / TikZ / Word / PPT / Excel 完整代码 |
```bash
cd <本技能>/scripts
python palette_kit.py registry-verify # 多场景注册表体检(色值/单调性/CVD 契约/场景交叉一致)
python palette_kit.py check # 本地 8 色板体检(对比度/去灰比/灰度单调/色盲最近对)
```
## 0.5 五场景速选(完整规范见 `references/scenarios.md`)
| 场景 | 分类色 | 顺序色带 | 发散 | CVD 政策 |
|------|--------|----------|------|----------|
| 中文竞赛论文 | `summer-beach-v6` | 夏日海滩 温度/水分色带 | `rdbu` | 允许第二编码(**必须**叠线型/标记/直接标签) |
| 英文期刊投稿 | `okabe-ito` | `viridis`(无障碍换 `cividis`) | `rdbu` | **要求直用可分** |
| 学位论文/课程报告 | `tol-bright` | `cividis` | `pu-or` | **要求直用可分** |
| 答辩幻灯/海报 | `tol-bright` | `viridis` | `rdbu` | 要求直用可分 |
| Word/PPT/Excel 内嵌 | `summer-beach-v6` | 夏日海滩温度色带 | `rdbu` | 允许第二编码 |
**禁用零容忍**:`jet`/`rainbow`/`turbo`、`RdGn`/`RdYlGn`(红-绿)、`hsv`;
期刊品牌色板(ggsci npg/jama/lancet/nejm)是**风格合规**工具、不是无障碍工具,用它必须自行复核。
**用户指定复刻色板(2026-09-26 登记)**:`aqing-teal-cat` / `aqing-teal-ramp`——默默驳回
huawei2026d 工作区图面"颜色过深"并指定参考论文,实测抽色后注册;categorical 为
`secondary_encoding` 档(靠 hatch/线型第二编码,ΔE 直用不达标),ramp 深端为结构深青
`#186078`(替代 cividis 的 `#00224E` 近黑深端)。仅该工作区引用,未挂任何场景。
**共存条件(W-PALQA P1-3)**:`aqing-teal-cat` 主系列 `#1890B4` 与 `aqing-teal-ramp`
stops[5] 同值,属参考件同源设计的刻意保留——**同一面板内禁止让类别系列与连续量
色带共用同一编码通道**(线/点=cat、热图/填色=ramp,且 cat 须带第二编码)。
## 1. 本地 8 色板速查(8 + 4 + 2)
**暖族(温度/热/主体 A)**——按色相推进排布,L* 基本单调:
| 键 | Hex | L* | 角色 |
|---|---|---|---|
| T4 | `#FEE6A9` | 92.0 | 族内最浅:底色渐变、第一梯队填充 |
| T3 | `#FED3A1` | 87.0 | 浅端填充、第二梯队 |
| T2 | `#FEBDAA` | 82.0 | 次色:蜜桃,卡片渐变底 |
| TMAIN | `#FEB8B5` | 81.0 | **族锚**:温度主曲线、主面板 |
| TACC | `#FDA574` | 75.5 | **全图唯一高亮**(C* 最高 47.4):强调曲线、荧光描边 |
**冷族(水分/冷/主体 B)**:
| 键 | Hex | L* | 角色 |
|---|---|---|---|
| M4 | `#9FE698` | 85.0 | 族内最浅:浅端填充 |
| M3 | `mix_lab(M4,M2,0.5)` = `#90D9CB` | ≈81.7 | 族内补位(LAB 插值生成,非手选) |
| MMAIN | `#6FCDFD` | 78.5 | **族锚**:水分主曲线 |
| M1 | `#2BC3F1` | 73.5 | 族内最深:深端曲线;与 TACC 构成 181° 互补对 |
**中性 4 色 + 色带深端 2 色**(8 色内无中性,必须外补):
| 键 | Hex | 角色 |
|---|---|---|
| INK | `#2B2B2E` | 全部文字(对白底 ≈15:1) |
| CRIT | `#57575A` | 判据线/阈值线/零线专用深灰 |
| NEU | `#B6B6B2` | 参考线、次要数据、次要卡片描边 |
| GRID | `#EBE8E3` | 网格线(与暖族同调的极浅中性) |
| RAMP_TEMP_DEEP | `#A3490D` | 温度色带深端(L*42/C 占上限 0.92) |
| RAMP_MOIST_DEEP | `#19667F` | 水分色带深端(L*40/C 占上限 0.92) |
**墨色映射 INK_MAP**(基色 → 同色相深彩,用于线条/描边/图例文字):
`#FEB8B5→#C74C53`、`#FEBDAA→#BE4E30`、`#FDA574→#A35B31`、`#FED3A1→#896330`、
`#FEE6A9→#76652F`、`#9FE698→#438040`、`#2BC3F1→#3B7287`、`#6FCDFD→#307697`。
## 2. 五条铁律(违反即返工)
1. **三层分工**:8 色只承担填充/色带/大面积;线条、描边、图例文字用墨色
(`deepen(基色)` 或查 INK_MAP);正文文字一律 INK。8 色对白底对比度仅
1.3–2.1:1,**严禁直接作文字色或细线色**。
2. **深色用 `deepen()`,禁用 `darken()`**:darken 向黑等比缩放会同步砍彩度,
得到浑浊深灰彩;deepen 固定 H°、压 L*、彩度取色域上限的 `INK_RATIO=0.65`
倍,得到饱满同色系深彩。
3. **族内明度单调**:同一族内按 L*(或色相)单调入带/排序,灰度打印不出
"假亮带";族间用最大色相间隙切割(本板 90.8°→139.6°,隙 48.8°)。
4. **互补对立 + 邻近连续**:对立语义(温度↔水分)用互补对编码
(TACC 54.6° ↔ M1 235.9°,相距 181°);同一量的连续梯度只用同族邻近色。
5. **线型冗余编码**:多曲线并列时必须叠加线型差异
(`- -- -. : (0,(4,1,1,1))`),仅靠色相区分在灰度/色盲下不合格。
## 3. 新图上色工作流
0. **选场景**:按 `references/scenarios.md` §二 判定本次属于哪个场景(竞赛/期刊/学位/幻灯/Office),
拿到该场景的分类色板 + 顺序色带 + 发散色板;不确定时先跑 `palette_kit.py registry-verify`
确认注册表自身健康(含禁用清单与场景交叉一致)。
1. **定性**:图里有哪些语义角色?主量/次量 → 两族锚色;强调 → TACC;
判据/阈值 → CRIT;参考线 → NEU;文字 → INK。
2. **取色**:从 `scripts/palette_kit.py` 导入常量(`from palette_kit import *`),
或查 §1 速查表;深色一律 `deepen(hex)`。**跨场景时色值按注册表取,不自行调色**。
3. **色带**:热图/曲面用 `CMAP_TEMP` / `CMAP_MOIST`(LAB 感知均匀插值,
近白起点 + 族内浅→深 + 设计深端);期刊/学位场景用 `viridis`/`cividis`;
**禁止 rainbow/jet**。
4. **排版**:按 `references/recipes.md` 的 rcParams 与 TikZ 样式块设置字号/网格/图例。
5. **体检**:`python scripts/palette_kit.py check` 全过;新配色修改后重跑。
6. **灰度/色盲抽查**:check 输出含灰度 L* 序与色盲最近色对距离,异常即调。
命中 ΔE 介于 12–25 的 WARN 时,**必须叠加第二编码并在图注/交付说明留痕**。
## 4. 配色诊断(用户说"不好看"时)
按 `references/color-system.md` §4 顺序排查,最常见的三个病灶:
① 发灰 = `ratio = C*/Cmax(L*,H°)` 低于 0.94(暖族)→ 提彩;
② 深色发浊 = 用了 darken 或黑色描边 → 换 deepen/墨色;
③ 整体乱 = 色相无族结构/超过两族 → 收拢为冷暖两族,多余色降级为 NEU。
改色只动 L* 与 C*,**色相 H° 一律不动**(保住用户已认可的色相语义)。
Files in this skill
- README.md
- SKILL.md
- assets/palette_preview.png
- assets/palette_registry.json
- assets/palette_v6.json
- references/color-system.md
- references/recipes.md
- references/scenarios.md
- scripts/palette_kit.py
Attribution
Comments
Loading comments…