--- name: 4drawio description: "数学建模非数据型图示绘制阶段。根据 ANALYSIS_MODELING_REPORT.md、RESULTS_REPORT.md 和已有 figures/ 生成技术路线图、子问题求解流程图、模型结构图、数据处理流程图等 DrawIO 图,并导出论文可引用 PDF。" allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, Agent, WebSearch, WebFetch --- # DrawIO 非数据图示绘制 本 skill 承接 `3coding-visual`。它只负责论文中的**非数据型图示**,例如技术路线图、求解流程图、模型结构图、数据处理流程图、变量关系图、指标体系图等。 ## 数学建模规范参考 如需领域判断,读取 `../_references/math_modeling_norms.md` 中的“图表与可视化”和“非数据图工具选择”小节。该文件只作为规范知识库,不要求为了凑数量生成额外图示。 ## 阶段边界 - 本阶段负责:DrawIO 源文件、非数据图 PDF、图示生成记录。 - 本阶段不负责:折线图、柱状图、散点图、热力图、箱线图、雷达图等数据图。这些由 `3coding-visual` 生成。 - 本阶段不重跑模型、不修改 `code/`,不改写 `reports/RESULTS_REPORT.md` 的数值结论。 ## 必须产出 在当前工作目录创建或更新: ```text figures/ fig_roadmap.drawio fig_roadmap.pdf fig_flow_q1.drawio fig_flow_q1.pdf ... reports/DRAWIO_REPORT.md ``` 如果某类图不需要生成,必须在 `reports/DRAWIO_REPORT.md` 中说明原因。竞赛论文通常至少需要一张 `fig_roadmap` 技术路线图。 读取这些文件的目的不是提取数据作图,而是理解论文方法、章节结构、子问题关系和已有图表,避免重复。 ## 工作流程 ### Step 1: 盘点已有图表和需求 先读取以下文件(存在则读取):`reports/ANALYSIS_MODELING_REPORT.md`、`reports/RESULTS_REPORT.md`、`figures/` 目录列表。 然后从前序文档提取非数据图需求,输出一个清单: ```text DRAWIO PLAN CHECKLIST: [ ] fig_roadmap 技术路线图,放在问题重述/绪论 [ ] fig_flow_q1 问题一求解流程图 [ ] fig_flow_q2 问题二求解流程图 [ ] fig_flow_q3 问题三求解流程图 [ ] fig_pipeline 数据处理流程图 [ ] fig_model 模型结构/变量关系图 ``` 清单不是固定模板,要根据题目实际删减或增补。不要为了凑图生成无意义图示。 ### Step 2: 判定图类型 常见图示选择: | 图类型 | 文件名建议 | 适用场景 | | --- | --- | --- | | 技术路线图 | `fig_roadmap` | 展示整体解题路线、章节逻辑、方法串联 | | 子问题求解流程图 | `fig_flow_q1`, `fig_flow_q2` | 展示单个子问题的输入、判断、算法、输出 | | 数据处理流程图 | `fig_pipeline` | 展示数据清洗、特征构造、建模输入 | | 模型结构图 | `fig_model` | 展示模块关系、变量关系、模型层次 | | 指标体系图 | `fig_index_system` | 展示目标层、准则层、指标层 | | 决策树/规则图 | `fig_decision_tree` | 展示分类规则、设备选择、策略分支 | 不要用 DrawIO 画这些图: - 结果对比柱状图 - 预测误差曲线 - 灵敏度曲线 - 相关性热力图 - 分布图和箱线图 ### Step 3: 生成 DrawIO 源文件 每张图一个 `.drawio` 文件,放在 `figures/`。 DrawIO 内容要求: - 文字语言与论文语言一致。 - 节点文字短,必要时双行,不堆长句。 - 同类节点样式统一。 - 箭头方向清晰,避免交叉。 - 图中不写大段解释,解释留给论文正文。 - 不使用装饰性阴影和过度渐变。 生成大 XML 时,分段写入,避免截断。示例: ```bash mkdir -p figures cat << 'XMLEOF' > figures/fig_roadmap.drawio XMLEOF ``` ### Step 4: 导出 PDF 优先用可用的 DrawIO 命令导出 PDF: ```bash DRAWIO_BIN="$(command -v drawio 2>/dev/null || command -v draw.io 2>/dev/null || command -v draw.io.exe 2>/dev/null || true)" if [ -n "$DRAWIO_BIN" ]; then "$DRAWIO_BIN" --export --format pdf --crop --output figures/fig_roadmap.pdf figures/fig_roadmap.drawio else echo "DrawIO command not found; keep .drawio source and record export failure." fi ``` 如果无法导出 PDF,保留 `.drawio`,在 `reports/DRAWIO_REPORT.md` 记录失败原因和建议导出命令。 ### Step 5: 自检和修复 每张图必须检查: - `.drawio` 文件非空。 - 若导出成功,`.pdf` 文件非空。 - 节点没有明显重叠。 - 箭头不穿过核心节点。 - 字号、颜色、边框风格一致。 - 文件名和图意一致。 - 没有与 `3coding-visual` 的数据图重复。 发现问题要修 `.drawio` 并重新导出,不要只在报告里解释。 ### Step 6: 写生成记录 创建 `reports/DRAWIO_REPORT.md`,至少包含: ```markdown # DrawIO 图示生成报告 ## 图示清单 | 文件 | 类型 | 来源依据 | 用途 | 状态 | | --- | --- | --- | --- | --- | ## 未生成图示及原因 ## 导出与自检记录 ## 给论文阶段的嵌入建议 ``` 嵌入建议只说明每张图适合放入哪个章节和建议 caption,不生成 `*_typst_includes.typ`。最终的图表插入代码(Typst 的 `#figure(image(...), caption: [...])` 或 LaTeX 的 `\begin{figure}...\end{figure}`)由 `5writing` 根据论文结构和所选引擎决定。 ## 质量要求 - 图示服务论文论证,不为装饰而画。 - 每张图必须能对应到`reports/ANALYSIS_MODELING_REPORT.md` 中的真实方法。 - 数据型图表不得在本阶段重复生成。 - 论文阶段引用的非数据图都应有 `.drawio` 源文件和 PDF,或者在 `reports/DRAWIO_REPORT.md` 说明导出失败。