news 2026/9/8 16:37:25

Claude Code 数据可视化反模式目录:26 个图表错误与修正方法(system_prompts_leaks)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Code 数据可视化反模式目录:26 个图表错误与修正方法(system_prompts_leaks)

Claude Code 数据可视化反模式目录:26 个图表错误与修正方法(system_prompts_leaks)

【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

本文基于 Claude Code 内置 Data Visualization 技能中的反模式清单 anti-patterns.md,完整拆解其中记录的 26 个真实生产事故——从双轴图、按排名重着色到虚线网格、骨架屏闪烁——并给出每一条的修正方法。文章进一步结合该技能的校验脚本 validate_palette.js 与参考色板 palette.md 的源码实现,说明这些"禁止事项"是如何被计算性规则(Delta E 阈值、色盲模拟、退出码语义)硬性执行的,读完你可以把这份清单直接当作图表交付前的质量门禁使用。

这份目录在整个 dataviz 技能中的位置

SKILL.md 定义了一条固定的七步工作流:先选形态(form heuristic),再按"颜色承担的职责"分配色,然后运行校验器而不是靠肉眼判断色板,接着套用图形规格(mark specs)、默认加上 hover 层、做可访问性终检,最后"渲染出来并亲眼看"。第七步之后,SKILL.md 明确要求把成品对照references/anti-patterns.md——"它是出错的目录。如果你的图表命中任意一条,它就是错的"(见 SKILL.md)。

这份目录的开头即立下基调:

"Check every chart against this list. If your output matches an entry, it is wrong — fix it before shipping. These are real failure modes, each caught in shipping dashboards."

也就是说,它不是风格偏好清单,而是在已上线仪表盘上被抓到的真实失败模式,共 26 条,分为四组:颜色与编码(8 条)、形态(4 条)、图形与界面元素(9 条)、交互与可访问性(5 条)。下面逐条展开,并在每条之后给出仓库内的源码级佐证。

颜色与编码:8 个反模式

1. 双轴图(dual-axis chart)

  • 错误:在同一张图里放两个 y 轴。
  • 为何误导:两个刻度的对齐方式是任意的,图表会"发明"一个数据中不存在的相关性。原文档记录了一个真实案例:一张 "Adoption" 图把 Users(0–30k)和 Sessions(0–800k)画在一起,评审者直接指出它看起来像"幻觉出来的"。
  • 修正:拆成两张图,用小倍数(small multiples),或把两条序列归一化到同一基准(t0 时 = 100)再画在一条轴上。

源码印证:这是 SKILL.md "Non-negotiables"(所有设计系统下都不可妥协)里被点名为"第 1 号图表错误"的规则——"One axis. Never a dual-axis chart (two y-scales)"(SKILL.md);且 marks-and-anatomy.md 把优先级定为"直接标注优先于网格线,网格线优先于第二轴"。

2. 按筛选重着色(recolor-on-filter)

  • 错误:按"当前排名"分配颜色,导致筛掉某个序列后,幸存序列被重新涂色。
  • 为何误导:读者已经学到"Acme 是蓝色",重涂色直接破坏认知锚点。
  • 修正:颜色跟随实体(entity),而不是它的行号;幸存序列保持原色相。

源码印证:SKILL.md 同样将其列为不可妥协项:"Color follows the entity, never its rank. A filter that changes the series count must not repaint the survivors."(SKILL.md)

3. 超过 8 个色相后循环/生成新色

  • 错误:出现第 9 个分类色——被"生成"出来或从已有槽位"复用"。
  • 为何误导:在色觉障碍(CVD)视角下,它和现有某个槽位无法区分;同时会破坏顺序检查。
  • 修正:把尾部并入 "Other",拆成小倍数,或使用复合编码(色相 × 形状)。

源码印证:参考色板固定为 8 个槽位(见 palette.md),choosing-a-form.md 明确"永远不要用生成更多色相来解决序列太多";全 8 色在--pairs all模式下本就无法通过全对校验(任何排序都不行),因此散点/气泡/小倍数这类形态被硬性限制在前三槽位。

4. 用肉眼判断"色盲安全"

  • 错误:"这几个颜色看起来区分度够了"。
  • 修正:运行scripts/validate_palette.js。相邻色对在 CVD 模拟下的 Delta E 必须 >= 8(OKLab ×100),或落在 6–8 区间附带次级编码。

源码印证:这正是校验脚本的默认阈值,见 validate_palette.js:

const CVD_TARGET = 8.0, CVD_FLOOR = 6.0; // OKLab Delta E×100, min(protan, deutan), adjacent pairs const NORMAL_FLOOR = 15.0; // OKLab Delta E×100, worst pair on the active pairlist, unsimulated vision

注意脚本比清单多了一道正常视力地板:未模拟视线下最差的色对 Delta E 必须 >= 15,这是一道硬门禁——次级编码不能豁免它。Delta E 定义为 OKLab 空间中的欧氏距离 ×100(validate_palette.js),CVD 模拟使用 Machado-Oliveira-Fernandes (2009) severity 1.0 的色盲转换矩阵(validate_palette.js)——源码注释特别强调该模拟模型"是标准的一部分,不是实现细节",换用其他模拟(如 Viénot-1999)会使边界色对漂移、需要重新校准阈值。Python 孪生实现 validate_palette.py 使用完全一致的阈值常量,保证两套引擎结果锁定(lockstep)。

5. 在名义(无序)类别上用值渐变色

  • 错误:当类别没有自然顺序(产品、团队、端点)时,按数值大小把每根柱子涂成深浅不同的色。
  • 为何误导:它把柱长已经表达的数值再用色相编码一遍(双重编码),烧掉了唯一的自由通道来表达图表已经展示的信息;并且它按设计就会挂掉分类检查——一条 ramp 横跨明度带、最浅端会掉到彩度地板之下。
  • 修正:单一序列 → 所有柱子统一用槽位 1 的颜色;有序类别(漏斗、等级、年龄带)→ 用序数 ramp,并以--ordinal校验。

源码印证:color-formula.md 给出判别标准——"交换类别顺序是否会改变含义";而--ordinal模式在源码里实现了四道序数专属检查:明度单调、相邻步长 ΔL >= 0.06、最浅端与画布对比 >= 2.0:1、色相散布 <= 40°(单色相)(validate_palette.js)。反过来,用分类校验器去校验一条正确的序数 ramp会按设计 FAIL(因为它跨明度带、浅端彩度不足),这是预期行为,不应"修好"一条好 ramp 去迎合它(color-formula.md)。

6. 彩虹 / 非邻接的序列色

  • 错误:用多色相 ramp 表达数值大小。
  • 修正:单色相,浅 → 深。唯一的多色相例外是"类比邻色"或"语义热力",且必须配 scale legend。

源码印证:参考色板的序列色相是蓝色100→700 共 14 步的完整 ramp(palette.md),并区分两种用途:连续量级编码允许最浅步退向画布;序数 ramp 的最浅端必须仍保持 2:1 对比(浅色模式不低于 step 250#86b6ef,深色模式不深于 step 600#184f95)。

7. 发散中点用色相 / 两极用两个冷色相

  • 错误:发散色标中点放一个彩色色相,或两极取两个冷色相。
  • 为何误导:中点必须读作"无",两极必须读作"相反"。blue ↔ aqua 失败(两者皆冷);blue ↔ red 或 blue ↔ orange 成功(冷暖对立)。
  • 修正:两个读作"相反"的色相 + 一个中性灰中点。

源码印证:参考色板明确记录了这个决策过程——"blue <-> red — warm/cool poles that read as opposite. Neutral midpoint is gray (light#f0efec, dark#383835). Equal step count per arm. (blue<->aqua was rejected — both cool, the midpoint doesn't read as 'nothing'.)"(palette.md)。

8. 状态色与非状态序列混用

  • 错误:把状态色(good/warning/serious/critical)用于非状态序列,或反过来把序列色用于状态。
  • 修正:只有当颜色确实意味着好/坏时才用状态 token;表示身份时永远是分类色。

源码印证:状态色板是"固定、永不换肤"的四步(palette.md),且其色阶被刻意设计成与分类槽位"可区分到一眼不撞、但又不靠色相单独区分"的量级——例如浅色模式下 warning(#fab219,1.79:1)与 serious(#ec835a,2.57:1)按设计低于 3:1 对比,缓解手段是图标 + 标签配对,状态色从不单独承载语义。SKILL.md 进一步规定"一张图里状态与分类永不双用"(color-formula.md)。

形态:4 个反模式

9. 故事只是一个数字,却用了 8 个分类色相

原文称这是"图表最常偏离重点的方式"。

  • 修正:用强调法(highlight one, gray the rest),或直接用 stat tile / hero number。

10. 单柱条形图,或两片饼图

  • 修正:用 stat tile。数字本身就是图表。

11. 用环形/饼图比较接近的数值

  • 修正:用条形图,或干脆给数字。环形/饼图只用于"一眼看整体构成",且 <= 6 个分段。

12. 承载意义的颜色类别超过约 7 个

  • 修正:用表格,或表格 + 图表。超过约 7 个 bin 后,相邻类别会糊在一起。

源码印证:这四条的完整决策表在 choosing-a-form.md:单一当前值 → stat tile(而非单柱);少数头条数字 → KPI row;占比对限值 → meter(而非两片饼);>~7 类 → 表格(而非更多颜色)。其后的"序列数阶梯"(choosing-a-form.md)给出量化处置:1–3 条可直接标注;4 条必须强制直接标注(黄橙同屏)且全对形态封顶三条;5–6 为软上限;7–8 是 token 天花板,超过就并入 "Other"、facet 或复合编码。

图形与界面元素:9 个反模式

13. 粗饱和色块、重网格线、无呼吸感

放大后显得"聒噪"甚至幼稚。

  • 修正:细图形(thin marks)、退居幕后的发丝级网格/轴、慷慨的留白。饱和填充只用于小图形和强调,永不用于大块。

源码印证:marks-and-anatomy.md 给出固定规格——柱 <= 24px 厚、数据线 2px 圆角接合、标记 >= 8px、面积填充为序列色相约 10% 不透明度("a wash, never a saturated block")、网格/轴为偏离画布一级的灰色发丝线。

14. 虚线网格线或轴线

虚线增加视觉噪声,且会被误读为"投影"或"阈值"——哪怕它只是网格。

  • 修正:网格线与轴线是实线发丝线,比表面深一级。

15. 每个数据点都标数字

点或分段旁全贴数值,是混乱且读不下去的。

  • 修正:>= 2 个序列时图例必须存在;直接标注有选择地做(端点、极值、唯一重要的那条序列),其余交给轴 + tooltip。

源码印证:"Label selectively — never a number on every point... Direct labels workbecausethey are sparing — flood the chart and they stop working."(marks-and-anatomy.md)

16. 给图形描边框来分隔

  • 修正:相邻填充之间用 2px 表面色间隙(堆叠分段与相邻柱同宽),重叠标记用 2px 表面色圆环(surface ring)。

源码印证:"Never draw a border around a mark to separate it. The gap and the ring are the mechanism; a stroke adds contenteditable="false">【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 16:36:23

手动将TranslateGemma 4B转GGUF量化:笔记本CPU跑翻译全流程

时间花了两天&#xff0c;把 TranslateGemma 4B 从 HuggingFace 上的原始权重&#xff0c;手动转成 GGUF&#xff0c;然后用 llama.cpp 在普通笔记本上跑起推理翻译。整个过程踩了不少坑&#xff0c;也把量化这件事彻底搞明白了。这篇记录不是搬运官方文档&#xff0c;而是我实…

作者头像 李华
网站建设 2026/9/8 16:35:22

装甲核心4帧率从28提到45fps:RPCS3的WCB写合并缓冲区实操调优

装甲核心4帧率从28提到45fps&#xff1a;RPCS3的WCB写合并缓冲区实操调优 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 如果你在RPCS3模拟器上跑《装甲核心4》卡在28fps&#xff0c;把WCB写合并…

作者头像 李华
网站建设 2026/9/8 16:34:32

AI时代刷题降维打法:把我的硬件付费题库,利用率放大10倍

AI时代刷题降维打法:把我的硬件付费题库,利用率放大10倍 现在所有硬件求职者,都绕不开一个词:AI。 这也是现在整个硬件行业最火,最有价值的方向。 2026年求职,已经彻底告别「死背书、硬刷题、靠积累熬时间」的传统模式。 很多同学问我一个高频问题:有了AI,我还需要…

作者头像 李华
网站建设 2026/9/8 16:33:52

FAM Hydrazide糖蛋白标记全流程:醛基靶向的绿色荧光探针方案

一支FAM Hydrazide&#xff08;CAS 2183440-65-3&#xff09;到手后&#xff0c;我做的第一件事不是直接稀释去标记&#xff0c;而是先把它放在暗盒里冷静了半小时——因为之前吃过太多次“荧光试剂一开瓶就受潮降解”的亏。这支试剂的定位很明确&#xff1a;高亮度绿色荧光探针…

作者头像 李华
网站建设 2026/9/8 16:29:58

当标题只有一串W:解码模糊需求背后的Web工程逻辑

1. 一串W的语义拆解&#xff1a;接到“无正文”标题时先别急着补需求先还原一下我这次接到的东西&#xff1a;项目标题是“WWWWWWWWWWWWW”&#xff0c;正文留空&#xff0c;关键词留空&#xff0c;摘要留空。十三个大写W连在一起&#xff0c;连个空格都没给。第一眼确实像系统…

作者头像 李华