Markdown-12-图表

图表在技术文档中非常重要,它可以:

  • 可视化复杂的数据关系
  • 展示系统架构和工作流程
  • 更清晰地表达思想和概念

Mermaid 是最流行的 Markdown 图表工具之一,它可以使用简单的文本语法生成各种图表。

支持图表类型:

  • 流程图 (Flowchart)
  • 序列图 (Sequence Diagram)
  • 类图 (Class Diagram)
  • 状态图 (State Diagram)
  • 甘特图 (Gantt Chart)
  • 饼图 (Pie Chart)

流程图

```mermaid
graph TD

A((开始)) ==> B{条件判断}
B -.-> | 是 | C(执行操作A)
B -.-> | 否 | D>执行操作B]
C --> E[结束]
D --> E

```

效果:

graph TD A((开始)) ==> B{条件判断} B -.-> | 是 | C(执行操作A) B -.-> | 否 | D>执行操作B] C --> E[结束] D --> E

流程图方向:

  • TD 或 TB:从上到下
  • BT:从下到上
  • RL:从右到左
  • LR:从左到右

节点形状:

  • [方形]:矩形
  • (圆角矩形):圆角矩形
  • {菱形}:菱形(决策)
  • ((圆形)):圆形
  • >旗帜形]:旗帜形

连接线类型:

  • --> 实线箭头
  • -.-> 虚线箭头
  • ==> 粗实线箭头
  • -- 实线
  • -. 虚线

时序图

```mermaid
sequenceDiagram

actor A as 用户
box rgb(230,240,255) 后端
participant B as 系统
participant C as 数据库
end

note right of C: MySQL
Redis

A ->> B: 登录请求

loop 数据交互
C->B: 数据的变动和查询
end

B ->> C: 验证用户信息
C -->> B: 返回验证结果
B -->> A: 登录成功/失败

```

效果:

sequenceDiagram actor A as 用户 box rgb(230,240,255) 后端 participant B as 系统 participant C as 数据库 end note right of C: MySQL<br>Redis A ->> B: 登录请求 loop 数据交互 C->B: 数据的变动和查询 end B ->> C: 验证用户信息 C -->> B: 返回验证结果 B -->> A: 登录成功/失败

时序图语法要点:

  • participant:普通参与者
  • actor:带小人图标的参与者
  • as:起别名
  • box:分组
  • note:添加注释
  • ->:实线,无箭头
  • -->:虚线,无箭头
  • ->>:实线,实心箭头
  • -->>:虚线,实心箭头
  • -x:实线,末端叉号
  • --x:虚线,末端叉号
  • -):实线,开放箭头,常用于异步消息
  • --):虚线,开放箭头,常用于异步消息
  • <<->>:实线双向箭头,较新版本支持
  • <<-->>:虚线双向箭头,较新版本支持

甘特图

mermaid gantt title 项目开发计划 dateFormat YYYY-MM-DD section 设计阶段 需求分析 :done, des1, 2024-01-01,2024-01-15 UI设计 :active, des2, 2024-01-10, 30d section 开发阶段 前端开发 : dev1, after des2, 45d 后端开发 : dev2, 2024-02-01, 60d section 测试阶段 单元测试 : test1, after dev1, 15d 集成测试 : test2, after dev2, 10d

效果:

gantt title 项目开发计划 dateFormat YYYY-MM-DD section 设计阶段 需求分析 :done, des1, 2024-01-01,2024-01-15 UI设计 :active, des2, 2024-01-10, 30d section 开发阶段 前端开发 : dev1, after des2, 45d 后端开发 : dev2, 2024-02-01, 60d section 测试阶段 单元测试 : test1, after dev1, 15d 集成测试 : test2, after dev2, 10d

甘特图语法要点:

  • title:设置标题
  • dateFormat:定义日期格式
  • section:定义阶段
  • 任务状态:
    • done:已完成
    • active:进行中
    • crit:关键

饼图

mermaid pie title 浏览器市场份额 "Chrome" : 65 "Safari" : 15 "Firefox" : 10 "其他" : 10

效果:

pie title 浏览器市场份额 "Chrome" : 65 "Safari" : 15 "Firefox" : 10 "其他" : 10

类图

类图用于面向对象设计,展示类及其关系。

```mermaid
classDiagram
class 用户 {
+用户名: string
+密码: string
+登录()
}

class 订单 {
+订单号: int
+创建日期: date
+计算总价()
}

用户 "1" --> "n" 订单
```

效果:

classDiagram class 用户 { +用户名: string +密码: string +登录() } class 订单 { +订单号: int +创建日期: date +计算总价() } 用户 "1" --> "n" 订单

高级技巧

主题定制

Mermaid 允许自定义图表样式:

mermaid %%{init: {'theme': 'forest'}}%% pie title 自定义主题 "项目A" : 30 "项目B" : 50 "项目C" : 20

效果:

%%{init: {'theme': 'forest'}}%% pie title 自定义主题 "项目A" : 30 "项目B" : 50 "项目C" : 20

交互式图表

一些工具支持添加交互功能:

mermaid graph TD A[点击我] --> B[显示详细信息] click A "https://www.runoob.com" "这是提示文本"

效果:

graph TD A[点击我] --> B[显示详细信息] click A "https://www.runoob.com" "这是提示文本"

导出图表

大多数工具支持将图表导出为:

  • PNG:图片
  • SVG:矢量图
  • PDF:文档

工具支持情况

工具/平台 Mermaid PlantUML Graphviz
GitHub ✔ ✖ ✖
GitLab ✔ ✔ ✔
VS Code 插件 插件 插件
Typora ✔ ✖ ✖
Obsidian 插件 插件 插件

最佳实践

  • 保持简洁:图表应该简单明了,避免过多细节
  • 统一风格:同一文档中的图表应保持一致的风格
  • 添加说明:为复杂图表添加文字说明
  • 版本控制:文本格式的图表可以很好地与 Git 配合使用
  • 测试渲染:在不同平台上测试图表显示效果

官方文档

可视化编辑器

posted @ 2026-09-30 17:35  天航星  阅读(4)  评论(0)    收藏  举报