SKILL · INFOGRAPHIC POSTER

把知识点做成图:可复用的信息图生产流程

一张图从数据到成品再上线,全部可复用。所有图片可直接下载。

技能 infographic-poster · HTML 精确排版 + 无头浏览器渲染

图 表

案例:户外增长机制图

四列推力 + 行为迁移对照 + 边界条件,用于说明归因类内容的版式组织方式。

案例:户外增长机制图

版式骨架(16:9 通用模板)

标题区、图例、数据驱动柱状图、25% 侧栏、注脚、结论条。改数据即可产出新图。

版式骨架(16:9 通用模板)

报 告

技能 infographic-poster 的说明文档与示例

为什么不用 AI 生图

AI 生图做含中文和数字的图,问题不在审美,而在文字控制:中文会缺笔画、数字会多一横、标签会串行。反复重试只能碰运气。

正确做法是用 HTML 写版式,用无头浏览器渲染成 PNG。文字一字不差,位置精确到像素,改一个数字重新渲染就行,而且一张图的版式会成为下一张图的起点。

四步流程

  1. 数据表格化。 把要上图的每个数值写成一行:颜色、所属分组、柱子数值、X 轴标签。后面所有元素都从同一行数据生成,这是杜绝「柱子与标签串行」的根本。
  2. 选版式。 分类对比用分组柱状;阶层递进用分层;归因拆解用多列推力;认知转变用左右对照;单一结论用大数字。
  3. 写 HTML 并渲染。 以模板为起点,跑 `render.py` 得到 4K 与 1080p 两版。
  4. 目检。 看渲染图逐项确认:文字无乱码、数值与标签对应、比例与数据一致、无重叠裁切。不通过就改 HTML 重渲染。

视觉规范(冷眼商业风)

  • 画布 1920×1080,外边距 64px;字体 Noto Sans CJK SC
  • 墨色 `#15181C`,辅助 `#74797F`,分割线 1px `#E2E5E8`
  • 强调色只有一个:`#C0462A`,用在主角与结论上
  • 字号阶梯:主标题 48–58、副标题 22–27、正文 17–23、大数字 44–48、结论 29–30
  • 禁止:背景网格线、坐标轴刻度数字、大圆角卡片、阴影、渐变

版式选择

| 内容形态 | 版式 | 关键点 | |---|---|---| | 多品类对比数值 | 分组柱状图 | 同层品类必须聚成一组,否则序列会「中间最高」 | | 阶层/漏斗/金字塔 | 分层 + 组间留白 | 层名单独成行,不要塞进 X 轴标签 | | 归因/机制拆解 | 多列推力 | 每列:序号 + 标题 + 2-3 行说明 + 一个大数字 | | 认知转变 | 左右对照 + 箭头 | 旧状态用灰,新状态用黑加粗 | | 单一结论 | 大数字 + 一句解释 | 数字 120px 以上,其余留白 |

站点发布

图做完之后,用 `build_site.py` 把图片和报告打包成带下载按钮的页面,再用 `publish.py` 推到 Cloudflare Pages。约定很简单:工作目录下成对的 `X-4k.png` 与 `X-1080.png` 会被自动识别为一张图。

已知坑

  • chromium 必须加 `--disable-dev-shm-usage`,容器里常缺 `/dev/shm`
  • headless 的视口高度比 `--window-size` 少约 100px,要用 1200 的高度渲染再裁到 1080
  • 个位数百分比在 150% 量程里只有 10px 高,这是数据真实,不要为了好看抬高
  • 区间值与下限值同轴时,柱顶要用虚线标出「这是下限」,并在注脚写明
  • 结论里做除法要穷举所有配对,取真实区间,别只挑最好看的那一对

怎么调用

技能目录:`~/.aicode/skills/infographic-poster/`

  • `assets/template.html` — 版式骨架
  • `scripts/render.py` — HTML → 4K / 1080p PNG
  • `scripts/build_site.py` — 图片画廊 + 报告页
  • `scripts/publish.py` — 发布到 Cloudflare Pages

新会话中直接说「把这份内容做成一张信息图」即会命中该技能。

下载报告 Markdown