一、概述
用常规编程语言绘制图表的工具非常多且功能强大,比如 matplotlib
就几乎能绘制所有类型的二维图表,甚至可以做一定程度的三维绘图。
但是,如果要使用 ChatGPT
、DeepSeek
、Qwen3
等 LLM
来一次性正确地生成绘制代码,声明式图表语言(Declarative Diagram Languages)可能是更好的选择。
再加上需从“对 Pandoc
友好”、“配置难度”等方面考虑,相较而言最合适的是 Mermaid
。
语言/工具 | Pandoc 支持度 | Markdown 支持度 | 配置难度 | 适合场景 | 备注 |
---|---|---|---|---|---|
Mermaid | 通过过滤器(mermaid-filter)或 CLI | 高,许多 Markdown 编辑器原生支持 | 中,需安装 Node.js 和 mermaid-cli | 流程图、时序图、类图、甘特图 | 语法简洁,多图表类型,现代且广泛应用 |
Graphviz DOT | 原生支持代码块 + pandoc-graphviz 过滤器 | 中,需插件或预先渲染图片嵌入 | 低,安装 graphviz 即可 | 复杂流程图、网络图、层次结构图 | 自动布局优良,图结构复杂时首选 |
PlantUML | 通过 pandoc-plantuml 过滤器调用 Java | 中,部分 Markdown 编辑器支持插件 | 较高,需 Java 环境及 PlantUML | UML 建模(类图、时序图、用例图等) | 专业 UML 设计工具,适合软件设计文档 |
WebSequenceDiagrams | 无原生支持,需手动生成图像插入 | 低,需插入生成的图片链接 | 低,在线使用即可 | 简单时序图,快速在线生成 | 依赖网络,适合临时绘图 |
Ditaa | 通过 pandoc-ditaa 过滤器支持 | 低,需转换为图片插入 | 低,Java 环境,轻量 | ASCII 艺术风格简单流程图、小示意图 | 轻量快速,风格独特,适合纯文本环境 |