Skip to main content

chart-taboo-principles

当用户需要避免数据可视化中的常见错误时使用。触发场景:用户问"设计图表时有哪些绝对不能做的事?"、"为什么我的图表看起来不专业?"、"设计评审时应该检查哪些负面清单?"。不适用于:正向的设计指导、艺术性可视化。关键 trigger 信号:设计禁忌 / Don'ts / 负面清单 / 常见错误 / 设计评审检查。

Zur Installation springen

Quellinformationen

Repository
Natsummerance/agents
Letzte Quellaktivität
27. August 2026 um 07:35
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
3
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
chart-taboo-principles
description
当用户需要避免数据可视化中的常见错误时使用。触发场景:用户问"设计图表时有哪些绝对不能做的事?"、"为什么我的图表看起来不专业?"、"设计评审时应该检查哪些负面清单?"。不适用于:正向的设计指导、艺术性可视化。关键 trigger 信号:设计禁忌 / Don'ts / 负面清单 / 常见错误 / 设计评审检查。
source_book
《ENCY-charts 数据可视化设计规范》 ENCY Design Team
source_chapter
7. Do's and Don'ts (Don'ts section)
tags
["design-taboos","common-mistakes","negative-checklist","design-review"]
source_project
ENCY-charts 设计规范
related_skills
["clarity-first-principles","consistency-principles","3d-pie-chart-trap","y-axis-non-zero-trap"]
# Chart Taboo Principles(图表禁忌原则) ## R (Reading) — 原文引用 > "Don'ts: 1. 不要使用超过 2 种字重在图表中 — 保持视觉一致性 2. 不要在分类色板中使用相似度 >80% 的颜色 — 色盲用户无法区分 3. 不要隐藏轴刻度标签除非空间极度受限 — 总提供至少 3-5 个刻度 4. 不要在饼图中使用 3D 效果或渐变填充 — 扭曲数据比例感知 5. 不要在 Tooltip 中省略数据单位 — 造成歧义 6. 不要在 KPI 卡片中使用装饰性图表 — 微型图表只放于有趋势意义的指标 7. 不要使用纯装饰性网格线 — 仅 Y 轴需要分割线 8. 不要在移动端展示超过 2 列的图表网格 — 信息密度过高" ## I (Interpretation) — 方法论骨架 这是**数据可视化的负面清单**,明确列出 8 条绝对禁止的设计行为,帮助设计师和开发者避免常见陷阱。 **八条禁忌分类**: 1. **视觉一致性类**(#1):字重不超过 2 种 2. **可访问性类**(#2, #3):颜色相似度 ≤80%,轴刻度至少 3-5 个 3. **数据真实性类**(#4):禁用 3D 效果和渐变填充 4. **内容完整性类**(#5, #6):Tooltip 必须含单位,微型图表必须有意义 5. **视觉噪音类**(#7):禁用纯装饰性网格线 6. **响应式类**(#8):移动端不超过 2 列 **核心价值**: - 快速识别错误:设计评审时逐项检查 - 预防常见问题:新人培训的反面教材 - 自动化 lint:转化为代码检查规则 ## A1 (Past Application) — 书中作者用过的案例 在 ENCY-charts 规范第 7 章,作者明确列出 8 条 Don'ts,并在其他章节提供对应的正确做法: - **#4 禁用 3D 饼图**:在 4.6 图表类型样式速查表中,饼图定义为纯扁平化(radius: ['50%','70%']),无 3D 效果 - **#1 字重限制**:在 3.3 设计哲学中明确"图表中不使用超过 2 种字重组合" - **#8 移动端列数**:在 8.1 图表自适应策略中定义 XS 断点(<728px)为 1 列 ## A2 (Future Trigger) — 何时调用此 skill **调用场景**: - 设计师问"设计评审时应该检查哪些负面清单?" - 前端工程师说"为什么我的图表看起来不专业?" - QA 工程师问"如何自动化检查图表设计的常见错误?" - 新人培训:"有哪些绝对不能做的设计行为?" **与相邻 skill 的区分**: - 与 `clarity-first-principles` 的区别:本 skill 提供负面清单(什么不能用),后者提供正向指导(应该怎么做) - 与 `ai-iteration-check-principles` 的区别:本 skill 专注设计禁忌,后者专注 AI 生成代码的质量检查 **关键 trigger 词**:设计禁忌 / Don'ts / 负面清单 / 常见错误 / 设计评审检查 / 3D 饼图 / 字重过多 ## E (Execution) — 可执行步骤 **步骤 1:检查字重使用(#1)** — 完成标准: 已输出"字重种类数 ≤2/超标"的判定结论,且扫描脚本已跑通 - 扫描 CSS/JS 代码,统计使用的字重数量: ```javascript const fontWeights = new Set(); document.querySelectorAll('*').forEach(el => { const fw = getComputedStyle(el).fontWeight; if (fw !== 'normal' && fw !== '400') { fontWeights.add(fw); } }); if (fontWeights.size > 2) { console.error(`使用了 ${fontWeights.size} 种字重,超过限制的 2 种`); } ``` - 修复:仅保留 600(主数据)和 400(辅助信息) **步骤 2:检查颜色相似度(#2)** — 完成标准: 已输出所有相邻色对相似度 ≤0.8/ >0.8 的判定结论,且计算日志可查 - 计算相邻颜色的相似度(使用 CIEDE2000 色差公式): ```javascript function colorSimilarity(color1, color2) { // 简化版:计算 RGB 欧氏距离 const r1 = parseInt(color1.slice(1,3), 16); const g1 = parseInt(color1.slice(3,5), 16); const b1 = parseInt(color1.slice(5,7), 16); const r2 = parseInt(color2.slice(1,3), 16); const g2 = parseInt(color2.slice(3,5), 16); const b2 = parseInt(color2.slice(5,7), 16); const distance = Math.sqrt((r1-r2)**2 + (g1-g2)**2 + (b1-b2)**2); return 1 - distance / 441.67; // 归一化到 0-1 } const similarity = colorSimilarity('#4B7AFA', '#5C8BFB'); if (similarity > 0.8) { console.error('颜色相似度过高,色盲用户无法区分'); } ``` - 修复:替换为差异更大的颜色 **步骤 3:检查轴刻度标签(#3)** — 完成标准: 已输出"Y 轴刻度数 ≥3/ <3"的判定结论,且统计脚本已跑通 - 统计轴刻度数量: ```javascript const yAxisTicks = document.querySelectorAll('.y-axis .tick'); if (yAxisTicks.length < 3) { console.warn('Y 轴刻度少于 3 个,可能导致读数困难'); } ``` - 修复:调整 `splitNumber` 或 `interval` 确保至少 3-5 个刻度 **步骤 4:检查 3D 效果(#4)** — 完成标准: 已输出"存在/不存在 3D 属性"的判定结论,且扫描脚本已跑通 - 扫描 ECharts 配置,查找 3D 相关属性: ```javascript if (option.series.some(s => s.shading === 'lambert' || s.dimension === 3)) { console.error('发现 3D 效果,应使用纯扁平化设计'); } ``` - 修复:移除 `shading`、`light` 等 3D 属性 **步骤 5:检查 Tooltip 单位(#5)** — 完成标准: 已输出"Tooltip 含单位/缺单位"的判定结论,且正则检查已跑通 - 验证 Tooltip 内容是否包含单位: ```javascript const tooltipText = getTooltipContent(); if (!/\d+\s*(万|亿|元|个|人|次|%)/.test(tooltipText)) { console.warn('Tooltip 缺少单位,可能造成歧义'); } ``` - 修复:在 formatter 中添加单位 **步骤 6:检查装饰性图表(#6)** — 完成标准: 已输出"微型图表有趋势意义/纯装饰"的判定结论,并给出处理意见 - 审查 KPI 卡片中的微型图表: - 是否有明确的趋势意义? - 还是仅为装饰? - 修复:移除无意义的微型图表,或替换为有意义的趋势数据 **步骤 7:检查装饰性网格线(#7)** — 完成标准: 已输出"X 轴分割线显示/隐藏"的判定结论,且配置检查已跑通 - 扫描 ECharts 配置,查找不必要的网格线: ```javascript if (option.xAxis.splitLine?.show) { console.warn('X 轴不应显示分割线,仅 Y 轴需要'); } ``` - 修复:设置 `xAxis.splitLine.show: false` **步骤 8:检查移动端列数(#8)** — 完成标准: 已输出"<728px 下列数 ≤2/ >2"的判定结论,且 CSS 媒体查询生效验证通过 - 在 <728px 宽度下检查图表格列数: ```css @media (max-width: 727px) { .chart-grid { grid-template-columns: 1fr !important; /* 强制 1 列 */ } } ``` - 修复:确保移动端不超过 2 列 **步骤 9:生成检查报告** — 完成标准: 已生成含 8 项检查结果与通过率的报告,若通过率<100%则明确列出失败项并标注优先级 - 汇总所有检查结果: ``` ❌ 使用了 3 种字重(超过限制的 2 种) ✅ 颜色相似度合格 ✅ 轴刻度数量合格 ❌ 发现 3D 饼图效果 ... 通过率: 6/8 = 75% ``` - 优先修复高危项(#4 3D 效果、#2 颜色相似度) ## B (Boundary) — 边界与盲点 **什么时候不适用**: - 艺术性可视化(如数据艺术、信息海报) - 特殊行业需求(如金融 K 线图需要 3D 效果) - 故意追求多样性的营销活动 **作者的盲点**: - 未讨论某些禁忌的例外情况(如在什么情况下可以使用 3D 效果) - 未说明如何将 8 条禁忌转化为自动化 lint 规则 - 未提及历史遗留的不合规设计如何处理(重构优先级) **失败模式警示**: - **过度严格**:将所有设计选择都列为禁忌,导致设计师束手束脚 - **误报率高**:自动化检查工具过于敏感,标记大量非问题 - **忽视上下文**:不考虑业务场景,机械地应用禁忌清单 **相关 skills**: - `clarity-first-principles` — 清晰性优先原则 - `consistency-principles` — 一致性至上原则 - `3d-pie-chart-trap` — 3D 饼图陷阱(具体反例) - `y-axis-non-zero-trap` — Y 轴不从零的误导(具体反例)
Auf GitHub ansehen