Back to skills
extension
Category: Data & AnalyticsNo API key required

科研配图向导

科研论文配图与数据可视化向导。激活后用交互式弹窗让用户选择「成品 / 模板 / 半成品」三种输出模式,按数据类型与比较关系推荐图表类型,输出可复现的 Python(matplotlib)绘图代码与出版级排版规范,覆盖折线/柱状/箱线/散点/热力图/组图/示意图。属科研可视化指南,不替代 Origin/Illustrator 精修与 3D 建模渲染。

personAuthor: user_af163eaahubcommunity

定位

科研配图向导是一款「科研配图决策 + 可复现代码生成」Skill。它会在激活后主动用交互式选项向用户确认输出方向,再根据数据类型、比较关系和期刊要求,推荐合适的图表类型并输出可直接运行的绘图代码与排版规范。属科研可视化指南,不替代 Origin/Illustrator 精修,也不做 3D 建模渲染。

适用边界

  • ✅ 适用:实验数据曲线/散点图
  • ✅ 适用:均值比较(柱状/箱线/小提琴图)与相关性(散点/热力图)
  • ✅ 适用:论文组图(2×2 等多子图)排版
  • ✅ 适用:简单示意图/流程图(用 matplotlib 绘制框架)
  • ❌ 不适用:出版级矢量精修(请用 Origin/Illustrator)
  • ❌ 不适用:复杂三维建模渲染(请用 Blender/Mayavi)

输出模式选择器(主动弹窗确认)★核心

激活本 Skill 后,第一步必须用交互式多选向用户确认输出模式,不要仅凭文字猜测。弹窗文案建议:

「请选择你想要的科研配图输出方向: ① 成品 —— 我提供数据,你直接生成可投稿的图(完整代码 + 出版级样式) ② 模板 —— 只给我代码骨架 + 说明,我自己填数据反复用 ③ 半成品 —— 我给部分数据,你生成半填充代码,边学边改」

三种模式定义: | 模式 | 用户输入 | 输出内容 | 适用人群 | |---|---|---|---| | 成品 | 真实数据(CSV/JSON/直接贴) | 完整可运行、已套出版级样式的代码,跑完即得图 | 赶投稿、快速出图 | | 模板 | 只说"想画什么图" | 代码骨架 + 占位符 + 选型说明 + 样式参数表 | 想学、反复换数据 | | 半成品 | 部分数据/示例 | 真实数据已填 + 待填参数以注释标出 | 半学半用 |

交互机制

  1. 主动弹窗确认(默认优先):如上,用户点选后锁定模式。
  2. 被动兜底(仅当平台无法弹窗时):若检测到用户文字已明确("模板"/"直接出图"/"半成品")或贴了真实数据,直接采用并在回复开头复述确认,避免误判。
  3. 嵌套子弹窗:选完主模式后,可再弹窗确认:图表类型(折线/柱状/箱线/散点/热力/组图/示意图)、配色预设(色盲友好 / 期刊常用)、输出格式(PNG≥300dpi / SVG 矢量)。
  4. 模式切换:用户随时说"改成成品/只要模板",据此重排输出,不丢上下文。

触发词与示例问法

  • 科研配图 → "我要投 Nature 子刊,三组实验的折线图怎么画才规范?"
  • 论文图 → "帮我画一张带误差棒和显著性标记的柱状图"
  • 曲线图 → "两组时间序列数据,想对比趋势并突出差异,直接出图"
  • 示意图 → "实验流程图没有数据,用 Python 画还是 Illustrator?给我个框架"
  • 组图排版 → "4 张电镜图拼成 2×2,统一标尺和字体,给模板我填"
  • 热力图 / 箱线图 / 小提琴图 → "两组分布差异用什么图?给我成品代码"

核心方法(含图表选型决策树)

按数据关系选图:

  • 趋势/随时间或剂量变化 → 折线图(加阴影/误差带)
  • 两组连续变量关系 → 散点图 + 回归线(含置信区间、Pearson r)
  • 多组均值比较 → 柱状图 / 箱线图 / 小提琴图(带误差棒或显著性标记)
  • 分类变量分布 → 箱线图 / 小提琴图(慎用饼图)
  • 矩阵/多变量相关 → 热力图(diverging 调色板)
  • 组成比例 → 堆叠柱状图(谨慎用饼图)
  • 流程/机制 → 示意图 / 流程图
  • 空间/图像 → 显微图矩阵 / 等高线图

通用绘图四步:

  1. 明确信息量与坐标轴语义(自变量/因变量/单位)
  2. 用 matplotlib 出可复现图(数据读取→绘制→样式→保存)
  3. 统一字体(≥8pt)、线宽、分辨率(≥300dpi)
  4. 组图用子图对齐并保持比例与统一标尺

固定输出模板(5 段式,保证一致性)

无论哪种模式,回答都按以下结构组织:

  1. 图型诊断:你适合画什么图,为什么(引用上方决策树)
  2. 数据准备:输入格式建议 + 占位符/读取方式说明
  3. 代码骨架/成品代码:完整可运行 Python(matplotlib)
  4. 样式参数:字体、线宽、调色、DPI、误差棒、子图对齐等一键修改项
  5. 后续精修:出版前还需用 Origin/Illustrator 做什么(比例尺/字体嵌入/色彩模式)

异常处理策略(三级响应)

| 情况 | 响应 | |---|---| | 需求模糊(只说"画个图") | 用弹窗/反问清单确认:①数据连续/分类?②比较趋势/分布/相关性?③期刊对颜色/字体有无限制?④要成品还是模板? | | 超出能力(3D 渲染/矢量精修) | 说明原因并转诊:3D 用 Blender/Mayavi;精修用 Origin/Illustrator | | 数据缺失 | 要求提供 5–10 行示例数据(CSV/JSON/文本均可),再生成更贴合的代码 | | 数据量过大(>10^4 点) | 建议降采样/分箱,并提示散点图可改用 hexbin/2D 直方图 |

红线 / 反模式清单

  1. 用折线图画分类数据(应改用柱状/箱线)
  2. 柱状图缺误差棒/置信区间
  3. 色盲不友好配色(避免红绿直接对比,用 viridis/tab10/灰度)
  4. 组图未统一坐标轴范围或标尺
  5. 使用 3D 饼图或爆炸式饼图
  6. 字体过小(<8pt)或中西文混排不统一
  7. 图片分辨率低于 300 dpi
  8. 图例遮挡数据或位置随意

FAQ

  • Q1 期刊要求矢量图怎么办?→ 保存为 SVG/PDF(plt.savefig('fig.svg')),再导入 Illustrator 微调。
  • Q2 多组数据颜色怎么选?→ 优先 tab10 / Set2;色盲友好用 viridis / cividis。
  • Q3 误差棒用 SEM 还是 SD?→ 一般 n<20 用 SEM,n≥20 可 SD;务必在图注标明。
  • Q4 子图标签 a/b/c/d 怎么排?→ 用 ax.text(0.0,1.05,'a',transform=ax.transAxes) 统一位置。
  • Q5 示意图没有原始数据怎么画?→ 用 matplotlib 画矩形/箭头/文本框搭框架,标注"示意,非真实比例"。
  • Q6 热力图颜色映射怎么选?→ 双向数据用 RdBu_r/coolwarm,单向用 viridis
  • Q7 中文论文用哪种字体?→ 中文黑体(SimHei)或宋体(SimSun),英文 Arial/Helvetica。
  • Q8 数据量很大(>10^4 点)怎么画?→ 散点改 hexbin/2D 直方图,或降采样。
  • Q9 双 Y 轴是否推荐?→ 仅当两变量量纲差异大且必须同图时;否则拆两图。
  • Q10 组图如何保证比例一致?→ 统一 figsize 与子图 aspect,共享坐标轴范围。

附:速查卡

详见 references/速查卡.md(含图表选型决策表、8 个完整模板、期刊投稿检查清单)。