Mermaid 图表 #
概述 #
Mermaid 是一种基于文本的图表语言,可以在 Markdown 中创建各种图表。
基本语法 #
使用代码块并指定 mermaid 语言:
markdown
```mermaid
graph TD
A[开始] --> B[结束]
```
渲染效果:
mermaid
graph TD
A[开始] --> B[结束]
流程图 #
基本结构 #
markdown
```mermaid
graph TD
A[开始] --> B{判断}
B -->|是| C[执行A]
B -->|否| D[执行B]
C --> E[结束]
D --> E
```
渲染效果:
mermaid
graph TD
A[开始] --> B{判断}
B -->|是| C[执行A]
B -->|否| D[执行B]
C --> E[结束]
D --> E
方向 #
| 方向 | 说明 |
|---|---|
TB |
从上到下 |
BT |
从下到上 |
LR |
从左到右 |
RL |
从右到左 |
节点形状 #
| 语法 | 形状 |
|---|---|
A[文本] |
矩形 |
A(文本) |
圆角矩形 |
A((文本)) |
圆形 |
A{文本} |
菱形 |
A[[文本]] |
子程序 |
A[(文本)] |
圆柱形 |
连接线 #
| 语法 | 样式 |
|---|---|
A --> B |
实线箭头 |
A --- B |
实线无箭头 |
A -.-> B |
虚线箭头 |
A ==> B |
粗线箭头 |
A --文本--> B |
带文字 |
时序图 #
markdown
```mermaid
sequenceDiagram
participant A as 用户
participant B as 服务器
participant C as 数据库
A->>B: 发送请求
B->>C: 查询数据
C-->>B: 返回数据
B-->>A: 返回响应
```
渲染效果:
mermaid
sequenceDiagram
participant A as 用户
participant B as 服务器
participant C as 数据库
A->>B: 发送请求
B->>C: 查询数据
C-->>B: 返回数据
B-->>A: 返回响应
箭头类型 #
| 语法 | 样式 |
|---|---|
->> |
实线箭头 |
-->> |
虚线箭头 |
->>+ |
激活 |
->>- |
停用 |
类图 #
markdown
```mermaid
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+String breed
+bark()
}
Animal <|-- Dog
```
渲染效果:
mermaid
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+String breed
+bark()
}
Animal <|-- Dog
状态图 #
markdown
```mermaid
stateDiagram-v2
[*] --> 待处理
待处理 --> 处理中
处理中 --> 已完成
处理中 --> 已取消
已完成 --> [*]
已取消 --> [*]
```
渲染效果:
mermaid
stateDiagram-v2
[*] --> 待处理
待处理 --> 处理中
处理中 --> 已完成
处理中 --> 已取消
已完成 --> [*]
已取消 --> [*]
饼图 #
markdown
```mermaid
pie title 项目时间分配
"开发" : 40
"测试" : 25
"文档" : 15
"会议" : 20
```
渲染效果:
mermaid
pie title 项目时间分配
"开发" : 40
"测试" : 25
"文档" : 15
"会议" : 20
甘特图 #
markdown
```mermaid
gantt
title 项目进度
dateFormat YYYY-MM-DD
section 阶段一
需求分析 :a1, 2024-01-01, 7d
设计 :a2, after a1, 5d
section 阶段二
开发 :a3, after a2, 14d
测试 :a4, after a3, 7d
```
渲染效果:
mermaid
gantt
title 项目进度
dateFormat YYYY-MM-DD
section 阶段一
需求分析 :a1, 2024-01-01, 7d
设计 :a2, after a1, 5d
section 阶段二
开发 :a3, after a2, 14d
测试 :a4, after a3, 7d
思维导图 #
markdown
```mermaid
mindmap
root((Markdown))
基础语法
标题
段落
强调
列表
有序列表
无序列表
任务列表
高级语法
表格
代码块
数学公式
```
渲染效果:
mermaid
mindmap
root((Markdown))
基础语法
标题
段落
强调
列表
有序列表
无序列表
任务列表
高级语法
表格
代码块
数学公式
兼容性 #
| 平台 | 支持情况 |
|---|---|
| GitHub | 支持 |
| GitLab | 支持 |
| Obsidian | 支持 |
| Typora | 支持 |
| VS Code | 需插件 |
| 部分 Markdown 解析器 | 不支持 |
最佳实践 #
1. 选择合适的图表类型 #
| 场景 | 推荐图表 |
|---|---|
| 流程说明 | 流程图 |
| 交互过程 | 时序图 |
| 类结构 | 类图 |
| 状态变化 | 状态图 |
| 时间规划 | 甘特图 |
| 知识结构 | 思维导图 |
| 占比分析 | 饼图 |
2. 保持简洁 #
markdown
好的:清晰的节点和关系
不好的:过于复杂的图表
3. 添加标签 #
markdown
A[开始] -->|标签| B[结束]
下一步 #
继续学习 目录生成!
最后更新:2026-03-24