Chartkit 图表生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c9b69df4/chartkit。
技能介绍
解决什么问题
论文写作里最消耗时间的往往不是建模,而是把结果画成符合期刊要求的图。原始数据常常是 HTML 表格、XML 或某种专有格式,字段类型和分布都不透明;如果手工复制粘贴成 JSON,一次转录错误就足以让整张图失真。而期刊投稿又同时要求可编辑的矢量图(SVG)和 600 dpi 的高分辨率位图(TIFF),不同子领域对图表风格的预期也不同——nature、lancet、conservative、default 四套主题正是为此准备的。
核心能力与工作流
Chartkit 走的是「先解析,再渲染」的两段式路线,核心规则只有一条:永远不手工转录数据。
- 理解原始格式:检查 HTML/CSV/XML/专有格式,确认变量类型与分布;
- 写单次解析脚本:用 Python 把原始数据提取为标准 JSON,输出到
.opencode/.tmp/,临时文件不落系统临时目录; - 选模板:从 10 种图表类型(柱状、折线、散点、3D 散点、箱线、小提琴、热力图、森林图、直方图、饼图)中匹配合适类型,或直接告知需求由 AI 选择;
- 自定义参数:调整主题、配色、尺寸与标注后再生成,不允许跳过这一步直接出图;
- 生成输出:产出 SVG + PDF + TIFF(600 dpi),可选 PNG。
调用方式上,CLI 模式提供三种入口:自动推荐模式按数据格式匹配图表类型,数据预览模式只打印分析而不生成图,JSON spec 模式则向后兼容旧调用。配置通过 chartkit.json 声明 conda 环境(默认 Python 3.13),依赖 matplotlib 3.10+,运行时检测缺失会直接报 blocker 而不是静默失败。
适用边界与注意点
这套技能不做交互式图表、非科学插图和跨语言回退。几个实际使用中容易踩的坑:
- 中文标签显示为方块:脚本会自动检测 CJK 字体,检测失败时需手动加
--cjk; - SVG 文本不可编辑:依赖
svg.fonttype: none保证文字以可编辑方式输出; - 环境路径硬编码:应该用 conda env name 声明环境,而不是写死绝对路径;
- 森林图是 JSON 专用类型:效应量 + 置信区间的森林图只能走 JSON spec 模式。
适合的场景是「从模板生成论文级科学图表,或对已有模板做参数化样式调整」;如果你需要交互式探索视图,它帮不上忙。
使用场景
- 论文结果章节需要把分组或堆叠柱状图按 Nature 主题渲染,并加入显著性标记与可编辑 SVG。
- 实验记录保存在 XML 或专有格式中,需要写单次 Python 解析脚本提取为标准 JSON,再生成箱线图或小提琴图。
- 审稿人要求热力图带注释和指定 colormap,数据来自矩阵文件,需自定义参数后输出 600 dpi TIFF。
- 需要为系统综述补充效应量与置信区间森林图,数据先整理成 JSON spec,再用 JSON 专用模式生成。
适合人员
- 生命科学论文作者:需要把实验数据解析为 JSON,按 Nature/Lancet 主题生成投稿用 SVG、PDF 和 600 dpi TIFF。
- 医学统计分析师:常处理分组数据、效应量与置信区间,需产出森林图、箱线图、热力图等投稿图表。
- 期刊编辑或科研绘图员:需要统一多篇论文的图表主题、配色和标注,并检查矢量图中文字是否可编辑。
- 工程或数据研究人员:从 CSV/XML/专有格式提取标准 JSON,生成折线误差带、散点趋势线或 3D 散点图。