name: visual-design description: “任何时候用户需要图像或PDF形式的视觉输出时使用此技能 — 图表、图表、海报、信息图、抽象艺术品或任何视觉设计。触发条件:数据可视化请求、海报/传单创建、信息图设计、抽象或艺术视觉、架构/流程图,或任何提及’chart’、‘graph’、‘poster’、‘infographic’、‘design’、‘visual’,或引用.png/.pdf图像输出的请求。”
视觉设计
快速参考
| 任务 | 工具 | 指南 |
|---|---|---|
| 数据图表或图形 | generate_chart |
阅读 SKILL.md 设计想法 |
| 海报 / 信息图 / 艺术 | create_visual_design |
阅读 canvas-design.md |
| 架构 / 流程图 | create_visual_design |
阅读 diagram-design.md |
可用工具
generate_chart
数据可视化。执行 matplotlib/plotly 代码以生成图表 PNG 文件。
python_code(str, 必需): 图表生成 Python 代码output_filename(str, 必需):.png文件名
create_visual_design
视觉设计创建:海报、信息图、艺术品、图表。 使用 reportlab、Pillow、svgwrite 或任何可用库。
python_code(str, 必需): 设计生成 Python 代码output_filename(str, 必需):.png或.pdf文件名
可用库
| 目的 | 库 | 输出 | 备注 |
|---|---|---|---|
| 数据图表 | matplotlib, plotly, bokeh | PNG | 最适合图表 |
| PDF 设计 | reportlab, fpdf | 完全控制 | |
| 图像设计 | Pillow + fonttools | PNG | 最适合 PNG 设计 |
| 矢量图形 | svgwrite → svglib + renderPDF | SVG → PDF | SVG→PNG 不支持(无 renderPM) |
| 图像处理 | Wand (ImageMagick), opencv-python | PNG | 首先检查可用性 |
重要:对于 PNG 输出,使用 Pillow 或 matplotlib。不要使用 svgwrite→renderPM(rlPyCairo 不可用)。
设计工作流
数据图表 (generate_chart)
- 识别数据结构并选择适当的图表类型
- 选择调色板(见下面的设计想法)
- 使用
plt.savefig(filename, dpi=300, bbox_inches='tight')编写代码 - 审查生成的图表
视觉设计 (create_visual_design)
- 确立设计概念/理念(内部)
- 遵循 canvas-design.md 中的流程
- 选择适当的库并编写代码
- 保存:reportlab
canvas.save()、Pillowimage.save()、matplotlibplt.savefig() - 审查输出并优化
设计想法
调色板
| 主题 | 主色 | 强调色 | 背景色 |
|---|---|---|---|
| 午夜商务 | 1E2761 |
408EC6 |
0D1B2A |
| 森林与苔藓 | 2C5F2D |
97BC62 |
1A1A1A |
| 珊瑚能量 | F96167 |
F9E795 |
2F3C7E |
| 海洋渐变 | 065A82 |
1B9AAA |
021B29 |
| 炭黑简约 | 36454F |
E8E8E8 |
1C1C1E |
| 樱桃大胆 | 990011 |
FCF6F5 |
150E11 |
| 鼠尾草平静 | 84B59F |
69A297 |
2D3A2D |
| 温暖陶土 | B85042 |
E7E8D1 |
2A1F1C |
排版
优先使用细/轻字体。最小化设计中的文本。
| 元素 | 大小 | 样式 |
|---|---|---|
| 主标题 | 48-72pt | 粗体或细体 |
| 副文本 | 14-18pt | 轻体 |
| 标签/标题 | 8-12pt | 常规,柔和 |
文本与画布平衡(重要):
- 文本大小必须与整体画布和周围设计元素成比例
- 常见错误:文本相对于画布太小,在正常观看距离下无法阅读
- 经验法则:如果你需要放大才能阅读,那它太小了
- 标题应吸引注意力 — 有疑问时,选择更大
- 标签/标题应清晰易读,不是装饰性的次要部分
- 测试:心理上将输出缩小到50% — 所有文本应该仍然可读
间距与构图
- 宽裕的边距(画布的至少10%)
- 元素之间一致的间距
- 无重叠;所有元素在画布边界内
- 视觉层次:通过大小、颜色、位置传达重要性
避免
- 元素紧贴画布边缘(边距不足)
- 重叠元素
- 颜色过多(坚持3-4种)
- 过度文本 — 视觉元素是焦点
- 默认 matplotlib 样式,未经定制
代码要求
- 代码必须将文件保存到磁盘
- 使用提供的确切
output_filename - PNG:推荐
dpi=300或更高 - PDF:推荐 A4 或 Letter 尺寸
- 对于韩语文本:配置适当的字体
QA
假设存在问题并寻找它们。
- 审查生成的图像/PDF
- 检查重叠元素、被裁剪的文本、边距不足
- 验证颜色对比度足够
- 如果发现问题,修复代码并重新生成
- 在完成前完成至少一个修复-验证循环