Mermaid使用教程(绘制各种图)

Mermaid使用教程(绘制各种图)

文章目录

    • Mermaid使用教程(绘制各种图)
      • 简介
      • 饼状图
        • 简单的例子
        • 应用案例
      • 序列图
        • 简单案例
        • 应用案例
        • 另一个应用案例
      • 甘特图
        • 简单案例
        • 应用案例
        • 一个更为复杂的应用案例
      • Git图
        • 简单案例
      • 总结

简介

本文将主要介绍使用Mermaid绘制各种各样的常用的图,例如:饼状图、序列图、甘特图等等,当然Mermaid也可以用来绘制流程图,可以参见我的另一篇文章:

https://blog.csdn.net/m0_54218263/article/details/135684176

饼状图

Mermaid 是一个用于生成图表和流程图的 JavaScript 库,它使用 Markdown 语法进行绘图。要在 Mermaid 中绘制饼状图,可以使用以下语法:

graph TDA[饼状图] --> B[部分1]A --> C[部分2]A --> D[部分3]B --> E[子部分1]C --> F[子部分2]D --> G[子部分3]

在上面的代码中,A 是整个饼状图的名称,BCD 是饼状图中的各个部分,EFG 是各部分下的子部分。使用箭头 (-->) 表示各部分之间的依赖关系。

您可以在代码中添加样式和颜色以自定义饼状图的外观。例如,您可以使用以下语法为每个部分添加不同的颜色:

graph TDA[饼状图] --> B[部分1 : red]A --> C[部分2 : green]A --> D[部分3 : blue]B --> E[子部分1 : red]C --> F[子部分2 : green]D --> G[子部分3 : blue]

在上面的代码中,: red: green: blue 是用于指定各部分颜色的样式。您可以根据需要自定义颜色和其他样式。

简单的例子

mermaid的代码如下所示:

pietitle Example Pie Chart"First slice": 30"Second slice": 20"Third slice": 50

生成的效果:

30% 20% 50% Example Pie Chart First slice Second slice Third slice
应用案例

mermaid的代码如下所示:

%%{init: {"pie": {"textPosition": 0.5}, "themeVariables": {"pieOuterStrokeWidth": "5px"}} }%%
pie showDatatitle Key elements in Product X"Calcium" : 42.96"Potassium" : 50.05"Magnesium" : 10.01"Iron" :  5

生成的效果:

40% 46% 9% 5% Key elements in Product X Calcium [42.96] Potassium [50.05] Magnesium [10.01] Iron [5]

序列图

Mermaid 是一个用于生成图表和流程图的 JavaScript 库,它使用 Markdown 语法进行绘图。要在 Mermaid 中生成序列图,可以使用以下语法:

graph LRA[开始] --> B[步骤1]B --> C[步骤2]C --> D[步骤3]D --> E[结束]

在上面的代码中,A 是序列图的起点,E 是终点,BCD 是序列图中的各个步骤。使用箭头 (-->) 表示各步骤之间的依赖关系。

您可以在代码中添加样式和注释以自定义序列图的外观和描述。例如,您可以使用以下语法为每个步骤添加样式和注释:

graph LRA[开始] --> B[步骤1 : 这是一个注释]B --> C[步骤2 : 这是另一个注释]C --> D[步骤3]D --> E[结束]

在上面的代码中,: 这是一个注释: 这是另一个注释 是用于添加注释的样式。您可以根据需要自定义样式和注释。

简单案例

mermaid代码:

sequenceDiagramA->>B: Message 1B-->>A: Message 2

效果:

A B Message 1 Message 2 A B
应用案例

代码:

sequenceDiagramparticipant Aliceparticipant BobAlice->>John: Hello John, how are you?loop HealthcheckJohn->>John: Fight against hypochondriaendNote right of John: Rational thoughts <br/>prevail!John-->>Alice: Great!John->>Bob: How about you?Bob-->>John: Jolly good!

效果:

Alice Bob John Hello John, how are you? Fight against hypochondria loop [Healthcheck] Rational thoughts prevail! Great! How about you? Jolly good! Alice Bob John
另一个应用案例

代码:

sequenceDiagramparticipant Aliceparticipant Johnrect rgb(191, 223, 255)note right of Alice: Alice calls John.Alice->>+John: Hello John, how are you?rect rgb(200, 150, 255)Alice->>+John: John, can you hear me?John-->>-Alice: Hi Alice, I can hear you!endJohn-->>-Alice: I feel great!endAlice ->>+ John: Did you want to go to the game tonight?John -->>- Alice: Yeah! See you there.

效果:

Alice John Alice calls John. Hello John, how are you? John, can you hear me? Hi Alice, I can hear you! I feel great! Did you want to go to the game tonight? Yeah! See you there. Alice John

甘特图

Mermaid 是一个用于生成图表和流程图的 JavaScript 库,它使用 Markdown 语法进行绘图。要在 Mermaid 中生成甘特图,可以使用以下语法:

graph TDA[项目开始] --> B[任务1]B --> C[任务2]C --> D[任务3]D --> E[项目结束]B --> F[任务4]F --> E

在上面的代码中,A 是项目的起点,E 是终点,BCDF 是项目中的各个任务。使用箭头 (-->) 表示任务之间的依赖关系。

您可以在代码中添加样式和注释以自定义甘特图的外观和描述。例如,您可以使用以下语法为每个任务添加样式和注释:

graph TDA[项目开始] --> B[任务1 : 这是一个注释]B --> C[任务2 : 这是另一个注释]C --> D[任务3]D --> E[项目结束]B --> F[任务4 : 还有一个注释]F --> E

在上面的代码中,: 这是一个注释: 这是另一个注释: 还有一个注释 是用于添加注释的样式。您可以根据需要自定义样式和注释。

简单案例

代码:

gantttitle Example Gantt ChartdateFormat  YYYY-MM-DDsection Sectiontask 1: 2019-01-01, 30dtask 2: 2019-02-01, 14dtask 3: 2019-03-01, 7d

效果:

2019-01-06 2019-01-13 2019-01-20 2019-01-27 2019-02-03 2019-02-10 2019-02-17 2019-02-24 2019-03-03 task 1 task 2 task 3 Section Example Gantt Chart
应用案例

代码:

gantt
dateFormat  YYYY-MM-DD
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10section A section
Completed task            :done,    des1, 2014-01-06,2014-01-08
Active task               :active,  des2, 2014-01-09, 3d
Future task               :         des3, after des2, 5d
Future task2               :         des4, after des3, 5d

效果:

2014-01-07 2014-01-09 2014-01-11 2014-01-13 2014-01-15 2014-01-17 2014-01-19 2014-01-21 2014-01-23 Completed task Active task Future task Future task2 A section Adding GANTT diagram to mermaid
一个更为复杂的应用案例

代码:

ganttdateFormat  YYYY-MM-DDtitle       Adding GANTT diagram functionality to mermaidexcludes    weekends%% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)section A sectionCompleted task            :done,    des1, 2014-01-06,2014-01-08Active task               :active,  des2, 2014-01-09, 3dFuture task               :         des3, after des2, 5dFuture task2              :         des4, after des3, 5dsection Critical tasksCompleted task in the critical line :crit, done, 2014-01-06,24hImplement parser and jison          :crit, done, after des1, 2dCreate tests for parser             :crit, active, 3dFuture task in critical line        :crit, 5dCreate tests for renderer           :2dAdd to mermaid                      :1dFunctionality added                 :milestone, 2014-01-25, 0dsection DocumentationDescribe gantt syntax               :active, a1, after des1, 3dAdd gantt diagram to demo page      :after a1  , 20hAdd another diagram to demo page    :doc1, after a1  , 48hsection Last sectionDescribe gantt syntax               :after doc1, 3dAdd gantt diagram to demo page      :20hAdd another diagram to demo page    :48h

效果:

2014-01-07 2014-01-09 2014-01-11 2014-01-13 2014-01-15 2014-01-17 2014-01-19 2014-01-21 2014-01-23 2014-01-25 2014-01-27 Completed task Completed task in the critical line Implement parser and jison Describe gantt syntax Active task Create tests for parser Add gantt diagram to demo page Add another diagram to demo page Future task Future task in critical line Describe gantt syntax Add gantt diagram to demo page Add another diagram to demo page Future task2 Create tests for renderer Add to mermaid Functionality added A section Critical tasks Documentation Last section Adding GANTT diagram functionality to mermaid

Git图

Mermaid 是一个用于生成图表和流程图的 JavaScript 库,它使用 Markdown 语法进行绘图。要在 Mermaid 中生成 Git 提交历史图,可以使用以下语法:

graph TDA[提交历史]B[提交1] --> C[提交2]C --> D[提交3]D --> E[提交4]

在上面的代码中,A 是 Git 提交历史的起点,BCDE 是各个提交。使用箭头 (-->) 表示提交之间的依赖关系。

您可以在代码中添加样式和注释以自定义 Git 提交历史图的外观和描述。例如,您可以使用以下语法为每个提交添加样式和注释:

graph TDA[提交历史]B[提交1 : 这是一个注释] --> C[提交2 : 这是另一个注释]C --> D[提交3 : 还有另一个注释]D --> E[提交4]

在上面的代码中,: 这是一个注释: 这是另一个注释: 还有另一个注释 是用于添加注释的样式。您可以根据需要自定义样式和注释。

简单案例

代码:

gitGraphcommitcommitbranch developcommitcommitcommitcheckout maincommitcommitmerge developcommitcommit

效果:
在这里插入图片描述

总结

接下来,做一个小小的总结:

我们讨论了使用 Mermaid 来生成不同类型的图表。Mermaid 是一个 JavaScript 库,它允许用户使用 Markdown 语法来创建和渲染流程图、序列图、甘特图和 Git 提交历史图等。

  1. 流程图:使用 graph 关键字来定义流程图,并通过箭头 (-->) 来表示流程中的步骤和它们之间的关系。

  2. 序列图:也使用 graph 关键字,但通常指定方向(如 LR 表示从左到右)。序列图用于显示对象之间的交互,箭头表示消息传递。

  3. 甘特图:虽然 Mermaid 本身不直接支持甘特图,但可以通过一些变通的方法(如使用流程图)来模拟甘特图的效果。然而,标准的 Mermaid 语法不包括专门用于甘特图的指令。

  4. Git 提交历史图:关于这一点,上面的回答可能有误导之嫌。实际上,Mermaid 本身不直接支持 Git 提交历史图的生成。Git 提交历史图通常使用其他工具(如 GitGraph.js)来生成。Mermaid 更专注于流程图和序列图等通用图表的绘制。

总结来说,Mermaid 是一个强大的工具,用于在 Markdown 文档中创建各种类型的图表。

然而,需要注意的是,它可能不支持所有类型的图表,特别是像甘特图和 Git 提交历史图这样的专门用途的图表。对于这些特定需求,可能需要寻找其他专门的工具或库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/243536.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《WebKit 技术内幕》学习之十(2): 插件与JavaScript扩展

2 Chromium PPAPI插件 2.1 原理 插件其实是一种统称&#xff0c;表示一些动态库&#xff0c;这些动态库根据定义的一些标准接口可以跟浏览器进行交互&#xff0c;至于这个标准接口是什么都可以&#xff0c;重要的是大家都遵循它们&#xff0c;NPAPI接口标准只是其中的一种&a…

将 SQL Server 2022 数据库备份到 MinIO

Microsoft 在将 S3 连接器和 Polybase 添加到 SQL Server 2022 时取得了重大飞跃。因此&#xff0c;企业可以利用他们保存到对象存储中的大量数据&#xff0c;并使用它来丰富 SQL Server 表。他们还可以利用对象存储来备份 SQL Server&#xff0c;这是开放性和云原生灵活性的又…

java程序cpu飙高如何排查

一、使用传统jstack手法来排查 如何使用原生top命令、jstack命令来做定位具体代码的位置处理 1、简单步骤有下面几步 执行top命令&#xff0c;查看CPU占用情况&#xff0c;找到进程的pid(12002)使用 top -Hp <pid> 命令&#xff08;为Java进程的id号&#xff09;查看该…

2024美赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 模型…

数学建模--PageRank算法的Python实现

文章目录 1. P a g e R a n k PageRank PageRank算法背景2. P a g e R a n k PageRank PageRank算法基础2.1. P a g e R a n k PageRank PageRank问题描述2.2.有向图模型2.3.随机游走模型 3. P a g e R a n k PageRank PageRank算法定义3.1. P a g e R a n k PageRank PageRank…

不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?

说在前面 &#x1f388;网页的功能和用途可能各不相同&#xff0c;在传统右键菜单栏中无法满足每个用户的个性化需求。通过自定义右键菜单栏&#xff0c;用户可以根据自己的需求添加、调整和删除菜单选项&#xff0c;以实现个性化定制。通过自定义右键菜单栏&#xff0c;可以为…

Mapbox加载浙江省天地图服务和数据处理

1. 加载影像服务 通过浙江省天地图官网申请所需服务&#xff0c;使用token获取服务数据 由于浙江省天地图使用的坐标系是 cgcs2000&#xff0c;需要使用 的框架对应为 cgcs2000/mapbox-gl&#xff0c;通过cdn引入或npm下载 影像服务地址为&#xff1a; ‘https://ditu.zjzw…

Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南

SQL注入—sqli-labs靶场 零、前言一、环境搭建①、VirtualBox②、Kali Linux③、Docker 二、闯关开始1、Less-1——union2、Less-2—数字型—union3、Less-3—)—union4、Less-4—")—union5、Less-5——布尔盲注6、Less-6—"—布尔盲注7、Less-7—))7.1—布尔盲注7.…

Xcode查看APP文件目录

一、连接真机到MAC电脑上 二、打开Devices 点击window -> Devices and Simulatores 三、选中设备、选择app 四、选择下载内容 五、查看文件内容 得到的文件 右键显示包内容&#xff0c;获得APP内数据 六、分发证书无法下载 使用分发的证书无法下载文件内容&#xf…

x-cmd pkg | hurl - HTTP 请求处理工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 Hurl 是 HTTP 请求处理工具&#xff0c;支持使用简单的纯文本格式定义的 HTTP 请求。它的用途非常广泛&#xff0c;既可以用于获取数据&#xff0c;也可以用于测试HTTP会话。 它可以链式处理请求&#xff0c;捕获数值…

LeetCode 670 最大交换数

周一&#xff0c;非常冷&#xff0c;大风呼呼的&#xff0c;上班路都走不动。 好消息&#xff0c;马上要过年了。大风吹&#xff0c;天气好。 过年过年&#xff0c;回家过年~ 学生时代的迷茫是不应该存在的&#xff0c;最好的时光应该尽情享受&#xff0c;而不应该自己给加层…

GO 的那些 IDE

文章目录 支持哪些功能快捷键代码高亮代码格式化代码提示导航跳转代码调试构建编译其他功能 GO有哪些IDEGolandVS CodeVim GOSublime TextAtomLiteIDEEclipse 总结 “程序员为什么要使用 IDE”&#xff0c;在一些社区论坛&#xff0c;经常可以看到这样的提问。关于是否应该使用…

有效的括号

有效的括号 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/valid-parentheses/…

Go语言学习笔记:基础语法和类型

Go语言学习笔记&#xff1a;基础语法和类型 目录 Go语言学习笔记&#xff1a;基础语法和类型学习路线前言变量声明常量数据类型布尔型&#xff08;Boolean&#xff09;整型&#xff08;Integer&#xff09;浮点型&#xff08;Floating point&#xff09;复数型&#xff08;Comp…

LoadRunner从零开始之接触LoadRunner

LoadRunner 是Mercury Interactive 公司开发的一款成熟的性能测试工具&#xff0c;LoadRuner 作为性能测试的实现者&#xff0c;涉及了性能测试流程、性能测试技术和软件 体系架构等众多方面的知识点&#xff0c;可以说&#xff0c;学习LoadRuner 是理解和学习性能测试 的非常好…

elastic search入门

参考1&#xff1a;Elastic Search 入门 - 知乎 参考2&#xff1a;Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客 1、ElasticSearch安装 1.1安装JDK&#xff0c;省略&#xff0c;之前已安装过 1.2创建ES用户 创建用户&#xff1a;sudo useradd esuser 设置密码&…

大模型相关学习资料整理

1. 核心2框架 1. semantic-kernel【微软】 https://learn.microsoft.com/en-us/semantic-kernel/overview/ 2. LangChain https://www.langchain.asia/ https://python.langchain.com/docs/get_started/introduction 2. 技术点 1. Function Call https://platform.opena…

mac安装node多环境

安装node node安装包 查询node环境 一般都是最新稳定版本 切换node环境 一般有些项目需要老的node版本支持&#xff0c;但是新的项目老的版本又不支持&#xff0c;这个时候需要切换node版本来运行各个项目 这个时候需要一个npm包 n来管理这些node环境包 sudo npm i -g n注…

Linux与windows互相传输文件之rzsz命令

文章目录 关于rzsz安装软件使用命令方法一&#xff1a;直接拖拽方法二&#xff1a;直接在终端输入rz 关于rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 安装完毕之后可以通过拖拽的方式将文件上传过去 首先看一下我们的机器可以使用网络吗&#xff…

导出 MySQL 数据库表结构、数据字典word设计文档

一、第一种 &#xff1a;利用sql语句查询 需要说明的是该方法应该适用很多工具&#xff0c;博主用的是navicat SELECT TABLE_NAME 表名,( i : i 1 ) AS 序号,COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE…