Mermaid 图表制作教程:用文字画出专业图表

目录

1. 什么是 Mermaid?

简单理解:Mermaid 就像一个"文字画家",你写文字,它自动画出漂亮的图表!

为什么选择 Mermaid?

想象一下,你需要画一个流程图来说明工作流程:

传统方式(复杂):

  1. 打开绘图软件(如 Visio、Draw.io)
  2. 拖拽各种形状
  3. 手动调整位置和连线
  4. 修改时重新绘制
  5. 保存为图片文件

Mermaid 方式(简单):

  1. 写几行文字代码
  2. 自动生成图表
  3. 修改文字即可更新图表

Mermaid 的优势对比

方面传统绘图工具Mermaid
学习难度需要学习复杂界面操作5 分钟学会基础语法
修改图表重新绘制整个图表修改几个文字即可
版本控制图片文件无法追踪变更文字代码完美支持 Git
团队协作需要专门的绘图软件任何文本编辑器都能编辑
平台要求依赖特定软件浏览器就能渲染
文件大小图片文件较大文字代码很小

Mermaid 能画什么图表?

Mermaid 就像一个"万能画笔",能画出各种专业图表:

Mermaid 图表工具箱
流程图\n展示工作步骤
时序图\n展示系统交互
甘特图\n展示项目进度
类图\n展示代码结构
状态图\n展示状态变化
饼图\n展示数据比例
用户旅程图\n展示用户体验

什么时候用 Mermaid?

场景用途举例
写技术文档解释系统流程API 调用流程、数据库设计
项目管理展示项目进度开发计划、任务分配
产品设计描述用户体验用户注册流程、购物流程
软件开发设计系统架构类关系图、状态转换
教学培训解释复杂概念知识点结构、学习路径

2. 流程图制作

最实用的技能:流程图是最常用的图表类型,学会它就能画出大部分工作流程图!

什么是流程图?

流程图就是用图形来展示工作步骤的图表,比如:

  • 用户注册流程
  • 购物下单流程
  • 项目开发流程
  • 问题解决流程

流程图的基本语法

最简单的流程图
步骤1
步骤2
步骤3
步骤4

语法解释

  • graph TD:创建一个从上到下的流程图
  • A[步骤1]:创建一个方框节点,内容是"步骤 1"
  • -->:箭头,表示流程方向
不同的节点形状
形状代码写法样子什么时候用
方框[文字]普通步骤
圆角框(文字)开始/结束
菱形{文字}需要判断
圆形((文字))重要节点
不同的箭头样式

| 箭头样式 | 代码写法 | 样子 | 什么时候用 |
| -------------- | -------- | ---- | ---------- | ---- | -------- |
| 实线箭头 | --> | → | 正常流程 |
| 虚线箭头 | -.-> | ⇢ | 可选流程 |
| 粗线箭头 | ==> | ➤ | 重要流程 |
| 带标签箭头 | --> | 标签 | | → 是 | 需要说明 |

实际例子:用户登录流程

让我们画一个用户登录的流程图,这是最常见的应用场景:

代码写法

```mermaid
graph TD
    A[用户访问网站] --> B{是否已登录?}
    B -->|是| C[进入主页]
    B -->|否| D[显示登录页面]
    D --> E[用户输入账号密码]
    E --> F{验证成功?}
    F -->|是| G[登录成功]
    F -->|否| H[显示错误信息]
    H --> D
    G --> C
    C --> I[结束]
```

实际效果

用户访问网站
是否已登录?
进入主页
显示登录页面
用户输入账号密码
验证成功?
登录成功
显示错误信息
结束

代码解释

  • {是否已登录?}:菱形表示需要判断
  • -->|是|:箭头上的标签,说明判断结果
  • 流程可以循环(错误后重新输入)

另一个例子:购物流程

再来看一个电商购物的流程图:

浏览商品
想买这个商品?
加入购物车
还要买其他东西?
去结算
填写收货地址
选择支付方式
确认订单信息
支付
支付成功?
订单完成
支付失败
商家发货

这个流程图的亮点

  • 可以循环浏览商品
  • 可以重复选择支付方式
  • 每个判断都有明确的标签

画流程图的技巧

  1. 从简单开始:先画主要流程,再添加细节
  2. 逻辑要清晰:确保每个步骤都有明确的目的
  3. 合理使用判断:用菱形表示需要做决定的地方
  4. 添加说明:在箭头上加标签,说明判断结果
  5. 避免太复杂:如果流程太复杂,可以分成多个小流程图

3. 时序图制作

系统交互图:时序图用来展示不同系统之间是如何"对话"的,就像聊天记录一样!

什么是时序图?

时序图就是展示系统之间"对话"的图表,比如:

  • 用户登录时,前端和后端怎么交互
  • 支付时,各个系统如何协作
  • API 调用时,数据如何传递

时序图的基本语法

最简单的时序图
用户 系统 发送请求 返回结果 用户 系统

语法解释

  • sequenceDiagram:创建一个时序图
  • participant A as 用户:定义参与者,A 是代号,用户是显示名称
  • A->>B: 发送请求:A 向 B 发送消息
参与者的定义方式
写法说明例子
participant A简单定义participant User
participant A as 中文名带中文名participant U as 用户
actor A角色定义actor Customer
不同的消息类型
消息类型代码写法样子什么时候用
发送消息A->>B: 消息正常交互
返回消息A-->>B: 返回回复结果
自己调用自己A->>A: 处理内部处理

实际例子:用户登录时序图

让我们看看用户登录时,各个系统是怎么"对话"的:

代码写法

```mermaid
sequenceDiagram
    participant U as 用户
    participant F as 前端页面
    participant B as 后端服务器
    participant D as 数据库

    U->>F: 输入用户名和密码
    F->>B: 发送登录请求
    B->>D: 查询用户信息
    D-->>B: 返回用户数据
    B->>B: 验证密码是否正确
    B-->>F: 返回登录结果
    F-->>U: 显示登录状态
```

实际效果

用户 前端页面 后端服务器 数据库 输入用户名和密码 发送登录请求 查询用户信息 返回用户数据 验证密码是否正确 返回登录结果 显示登录状态 用户 前端页面 后端服务器 数据库

时序图解释

  1. 用户在前端输入账号密码
  2. 前端把信息发送给后端
  3. 后端去数据库查询用户信息
  4. 数据库返回用户数据
  5. 后端验证密码是否正确
  6. 后端告诉前端登录结果
  7. 前端显示给用户看

画时序图的技巧

  1. 按时间顺序排列:从上到下表示时间先后
  2. 参与者要明确:每个角色都要有清楚的名称
  3. 消息要具体:说明具体做了什么
  4. 区分请求和响应:用不同的箭头样式
  5. 不要太复杂:重点突出主要的交互过程

4. 甘特图制作

项目管理神器:甘特图用来展示项目进度,一目了然地看到什么时间做什么事!

什么是甘特图?

甘特图就是项目进度表,可以清楚看到:

  • 什么时候开始做什么任务
  • 每个任务需要多长时间
  • 哪些任务可以同时进行
  • 项目的整体进度

甘特图的基本语法

最简单的甘特图
2024-01-01 2024-01-03 2024-01-05 2024-01-07 2024-01-09 2024-01-11 2024-01-13 2024-01-15 2024-01-17 2024-01-19 任务A 任务B 第一阶段 我的项目计划

语法解释

  • gantt:创建一个甘特图
  • title:图表标题
  • dateFormat:日期格式
  • section:任务分组
  • 任务名称 :状态, 任务ID, 开始日期, 结束日期
任务状态说明
状态代码写法颜色什么时候用
已完成done绿色任务已经完成
进行中active蓝色任务正在进行
计划中不写状态灰色还没开始的任务
重要节点milestone橙色关键里程碑

实际例子:网站开发项目

让我们看看一个完整的网站开发项目甘特图:

2024-01-07 2024-01-14 2024-01-21 2024-01-28 2024-02-04 2024-02-11 2024-02-18 2024-02-25 2024-03-03 需求调研 需求文档 UI设计 数据库设计 前端开发 后端开发 测试 部署准备 正式上线 需求分析 设计阶段 开发阶段 部署上线 网站开发项目进度

这个甘特图的特点

  • 绿色:已经完成的任务
  • 蓝色:正在进行的任务
  • 灰色:还没开始的任务
  • 橙色:重要的里程碑

画甘特图的技巧

  1. 合理分组:把相关任务放在同一个 section
  2. 设置里程碑:标记重要的时间节点
  3. 考虑并行:有些任务可以同时进行
  4. 留出缓冲时间:不要安排得太紧
  5. 定期更新:根据实际情况调整进度

5. 其他图表类型

更多选择:除了流程图、时序图、甘特图,Mermaid 还有很多其他图表类型!

类图(面向对象设计)

类图用来展示代码中的类和它们的关系:

User
+String username
+String email
+login()
Admin
+String role
+manageUsers()

状态图(状态变化)

状态图展示对象的状态变化过程:

支付成功
超时取消
商家发货
确认收货
待支付
已支付
已取消
已发货
已完成

饼图(数据比例)

饼图用来展示数据的比例关系:

60% 30% 10% 用户设备类型 手机 电脑 平板

6. 实用技巧

提升效率:掌握这些技巧,让你的 Mermaid 图表更专业!

美化图表

深色主题
深色主题
更专业的外观
自定义颜色
红色主题
个性化图表

Typora 使用技巧

基于 Typora 1.6.7 + Windows 11 的实用技巧:

功能操作方法说明
快速插入图表Ctrl+Shift+M快速创建 Mermaid 代码块
实时预览自动显示无需切换模式
导出图表右键菜单导出为图片分享
复制代码Ctrl+C复制图表代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值