当前位置: 首页 > backend >正文

Mermaid的常见用法

在这里插入图片描述

以下是 Mermaid.js 常见图表语法的详细整理,涵盖 10 种常用图表类型,附语法说明和示例代码,适合快速查阅和实战使用。


一、流程图 (Flowchart)

用途:展示流程、逻辑步骤或算法。
语法:
graph TD/BT/LR/RL:定义方向(从上到下、从下到上、从左到右、从右到左)。

• 节点:A[文本](方框)、A(圆角)A((圆形))A>右括号]

• 连线:-->(普通箭头),--text-->(带文字箭头),-->|条件|(条件分支)。

示例:

成功
失败
开始
是否登录?
显示主页
跳转登录页
输入账号密码
验证
提示错误

二、时序图 (Sequence Diagram)

用途:描述对象间的交互顺序和时间流。
语法:
participantactor 定义参与者。

• 消息:A->>B: 消息(同步)、A-->>B: 异步

• 循环/条件:loop, alt, optional

示例:

用户 客户端 服务器 点击按钮 GET /data 返回 JSON 渲染页面 重试请求 loop [重试机制] 用户 客户端 服务器

在这里插入图片描述

三、类图 (Class Diagram)

用途:展示类、属性、方法及类之间的关系。
语法:
• 类:class 类名 { 属性 方法 }

• 关系:--|继承|, o-- 组合, *-- 聚合, --> 关联

示例:

继承
拥有
Animal
+String name
+eat()
Dog
+bark()
Owner
-String name

四、状态图 (State Diagram)

用途:描述对象的状态转换逻辑。
语法:
stateDiagram-v2 定义状态机。

• 状态:[*] --> 状态名状态名 --> 状态名2: 事件

示例:

支付成功
发货
确认收货
交易完成
取消订单
未支付
已支付
已发货
已收货
已取消

在这里插入图片描述

五、甘特图 (Gantt Chart)

用途:项目管理中的时间线规划。
语法:
dateFormat:定义日期格式。

section:分段标题。

• 任务:任务名 :active, 日期, 持续时间

示例:

2023-10-01 2023-10-03 2023-10-05 2023-10-07 2023-10-09 2023-10-11 2023-10-13 2023-10-15 2023-10-17 2023-10-19 2023-10-21 2023-10-23 2023-10-25 2023-10-27 2023-10-29 2023-10-31 2023-11-01 2023-11-03 需求评审 架构设计 前端开发 后端开发 需求分析 设计 开发 项目开发计划

六、饼图 (Pie Chart)

用途:展示数据占比。
语法:
pie 开头,每行定义标签和数值。

示例:

15% 30% 45% 10% 用户年龄分布 18岁以下 18-25岁 26-35岁 36岁以上

七、用户旅程图 (User Journey Map)

用途:描述用户在特定场景中的体验流程。
语法:
journey 开头,定义标题和阶段。

• 三列:阶段名称、用户行为、用户满意度。

示例:

用户
商品浏览
商品浏览
用户
搜索商品
搜索商品
用户
查看详情
查看详情
下单支付
下单支付
用户
加入购物车
加入购物车
用户
提交订单
提交订单
在线购物流程

八、实体关系图 (ER Diagram)

用途:展示数据库表之间的关系。
语法:
erDiagram 开头,定义实体和字段。

• 关系:1:n, m:n, 1:1

示例:

Customer int id PK string name string email Order int orderId PK date orderDate 1:n

九、散点图 (Scatter Plot)

用途:展示数据分布或趋势。
语法:
scatter 开头,每行定义 x/y 值和标签。

示例:

scattertitle 用户评分分布x-axis 评分y-axis 数量4.5, 120: ★★★★★4.0, 200: ★★★★3.5, 80: ★★★

十、类图扩展 (Git Graph)

用途:展示 Git 分支与提交历史。
语法:
graph TD 定义方向。

commit 标记提交节点,branch 定义分支。

示例:


其他实用技巧

1. 子图 (Subgraph):

组件B
组件A
B2
B1
A2
A1

2. 自定义样式:

classDef highlight fill:#f9f,stroke:#333;
classDef red fill:#ff9999,stroke:#b32424;
A[普通节点]:::red --> B[高亮节点]:::highlight

3. 箭头修饰符:
--(虚线):A-- 文本 -->B

-.->(带箭头虚线):A-.->B


总结
Mermaid 的核心优势在于 纯文本语法,可直接嵌入 Markdown 或文档中,支持实时预览。更多高级语法可参考 官方文档。建议通过在线编辑器(如 Mermaid Live Editor)快速验证代码效果。

实例参考

1. 医疗诊断流程
场景:医院初步分诊流程

graph TDA([患者到达]) --> B{挂号类型?}B -- 急诊 --> C[急诊科处理]B -- 普通门诊 --> D{症状检查}D -- 发热 --> E[体温测量]D -- 腹痛 --> F[腹部触诊]E --> G{体温>38℃?}G -- 是 --> H[安排核酸+血常规]G -- 否 --> I[普通门诊就诊]F --> J[开具B超/CT检查]

解析:
• 分支判断:根据症状和检查结果分流患者。

• 标准化:确保急诊优先,减少交叉感染风险。


2. 法律诉讼流程
场景:民事诉讼案件处理步骤

原告提起诉讼
法院是否受理?
被告提交答辩状
原告补充材料
是否需要调解?
调解委员会介入
开庭审理
调解成功?
生成调解书

解析:
• 法律程序:明确诉讼各环节的顺序和可能性。

• 非诉路径:优先尝试调解,节省司法资源。


3. 在线课程开发流程
场景:教育机构制作网课

录播课
直播课
确定课程主题
内容类型?
编写脚本
设计互动环节
录制视频
测试直播设备
剪辑+添加字幕
上传至平台

解析:
• 条件分支:根据课程形式选择不同制作路径。

• 合并节点:无论录播或直播,最终统一上传。


4. 内容审核流程
场景:社交媒体平台的内容审核

无违规
存疑
用户发布内容
AI初步检测
直接发布
人工复审
是否违规?
删除内容+警告用户
记录违规次数
累计3次?
封禁账号

解析:
• 自动化+人工协作:提高审核效率,减少误判。

• 分级处罚:根据违规次数采取不同措施。


5. 旅行规划流程
场景:自由行行程安排

选择目的地
预算是否充足?
预订机票+酒店
寻找特价优惠
制定每日景点路线
是否包含高风险活动?
购买专项保险
打包行李

解析:
• 动态决策:根据预算调整前期准备。

• 风险预判:针对特定活动增加保障步骤。


6. 智能家居控制流程
场景:自动浇花系统

湿度传感器触发
土壤湿度<30%?
启动水泵浇水
关闭阀门
浇水时长达到10分钟?
停止浇水
发送完成通知至手机

解析:
• 物联网逻辑:通过传感器数据驱动设备动作。

• 防故障机制:设置超时停止,避免过度浇水。


7. 项目管理中的敏捷冲刺流程
场景:Scrum 团队迭代开发

任务阻塞?
正常
产品待办列表
冲刺计划会议
开发任务拆分
每日站会
调整优先级
持续集成测试
冲刺结束?
交付可用版本

解析:
• 循环迭代:每日站会快速响应问题。

• 持续交付:每个冲刺周期产出可用成果。


8. 快递分拣中心流程
场景:包裹分拣自动化

graph TDA[包裹扫描入库] --> B{目的地省份?}B -- 华东地区 --> C[分配至上海分拣线]B -- 华北地区 --> D[分配至北京分拣线]C --> E{是否易碎品?}E -- 是 --> F[标记“小心轻放”]E -- 否 --> G[装入标准货箱]F --> GG --> H[运输车辆调度]

解析:
• 区域分流:按地理区域并行处理,提升效率。

• 特殊处理:对易碎品单独标记,降低损坏率。


9. 求职应聘流程
场景:应届生求职投递

招聘网站
内推
完善简历
投递渠道?
海投
定向投递
收到面试邀请?
准备技术面
优化简历
是否通过?
HR谈薪

解析:
• 多路径选择:区分不同投递方式的后续动作。

• 动态优化:未通过则返回修改简历。


10. 汽车故障自检流程
场景:车主自查车辆问题

启动失败
仪表盘是否有警告灯?
检查电瓶电量
尝试多次点火
电瓶是否亏电?
搭电启动
联系4S店
是否启动成功?
临时使用

解析:
• 快速排查:优先检查常见问题(电瓶、点火)。

• 安全提示:复杂问题直接建议专业处理。


总结:如何灵活应用?

  1. 符号扩展:
    • 用 颜色 区分部门(如红色=风险,绿色=完成)。

    • 用 图标(⚠️、📧)增强可视化效果。

  2. 工具推荐:
    • Mermaid:适合技术文档、Markdown 中嵌入。

    • Draw.io:免费在线工具,支持团队协作。

    • Lucidchart:企业级流程管理,支持版本控制。

如果需要某个领域的 详细模板 或 工具操作教程,欢迎进一步提问!

http://www.xdnf.cn/news/4600.html

相关文章:

  • Oracle 数据布局探秘:段与区块的内部机制
  • 制作一款打飞机游戏40:点选敌人
  • 编写程序,统计两会政府工作报告热词频率,并生成词云
  • 【icpc陕西省赛】树的最大深度+基环树找环的大小
  • 注意力(Attention)机制详解(附代码)
  • LeetCode205_同构字符串
  • NHANES指标推荐:AISI
  • QML 动态加载组件
  • 论文解析[13] MIXED TRANSFORMER U-NET FOR MEDICAL IMAGE SEGMENTATION
  • 【C++】C++11(上)
  • RDD的处理过程
  • vue3的新特性
  • Spring cloud loadBalancer 负载均衡
  • Qwen2-VL详解
  • Unity3D 游戏内存优化策略
  • Anchor-based 和 Anchor-free
  • 修改图像分辨率
  • SLAM:单应矩阵,本质矩阵,基本矩阵详解和对应的c++实现
  • AtCoder 第404场初级竞赛 A~E题解
  • 【无标题】云计算运维
  • 代码随想录算法训练营第60期第二十九天打卡
  • 前端代码规范详细配置
  • CSS手动布局
  • 60页PDF | 四川电信数据湖 + 数据中台实施方案:覆盖数据能力、数据资产及数据治理的全流程建设指南
  • 从xjtu-sy数据集中看轴承故障的发展趋势与基本特征
  • 南京大学OpenHarmony技术俱乐部正式揭牌 仓颉编程语言引领生态创新
  • 5. HTML 转义字符:在网页中正确显示特殊符号
  • Linux系列:如何用perf跟踪.NET程序的mmap泄露
  • 水印落幕 7.0 | 专门用于去除图片和视频中水印的工具,支持自定义水印添加
  • 【测试开发】BUG篇 - 从理解BUG到如何处理