Mermaid 入门

Introduction

Mermaid是一个基于 JavaScript 的图表绘制工具,可渲染 Markdown 启发的文本定义以动态创建和修改图表,允许使用文本和代码创建图表和可视化。

官方文档:https://mermaid.js.org/intro/

中文版:https://mermaid.nodejs.cn/intro/

使用方法

对于大多数用户来说,使用 在线编辑器 就足够了,但是你也可以选择将 mermaid 部署为依赖或使用 Mermaid API

在线编辑器

Mermaid的在线编辑器是其主要特色之一,如https://mermaid.live/。用户可以直接在网页上创建和渲染图表,无需安装任何软件。这对于大多数用途来说是一个快速且简便的选择。

R包 DiagrammeR

Mermaid也可以通过R的DiagrammeR包进行使用。这对于数据分析师和统计师特别有用,因为它允许在R环境中直接创建和集成图表,本篇post也是使用该包渲染的。

library(DiagrammeR)

mermaid("graph TD;
  A[Start] --> B{Is it?};
  B -- Yes --> C[OK];
  C --> D[Rethink];
  D --> B;
  B -- No --> E[End];")
Yes
No
Start
Is it?
OK
Rethink
End

其他支持的编辑器

Mermaid还支持其他编辑器和平台的集成,例如Quarto,Jupyter Notebook和一些开源文档工具,使得在不同的环境中使用Mermaid成为可能。

图表类型

1. 饼形图 (Pie Chart)

  • 用途: 饼形图用于展示数据的比例分布,常用于表示各部分占总量的百分比。

  • 语法示例:

    pie
      title Pets adopted by volunteers
      "Dogs" : 386
      "Cats" : 85
      "Rats" : 15
    
    79% 17% 3% Pets adopted by volunteers Dogs Cats Rats
  • 解释: 这里定义了一个饼形图,标题为”志愿者领养的宠物”,包括三个部分:狗、猫和鼠,以及各自的数量。

在Mermaid中,绘制饼形图的语法相对简单。主要的步骤和可配置参数如下:

  1. 开始: 使用pie关键字开始图表。
  2. 显示数据(可选): 通过showData关键字,可以在图例文本后显示实际的数据值。
  3. 标题(可选): 使用title关键字和其字符串值为饼形图添加标题。
  4. 数据集: 饼形图的每个部分以标签和值的形式定义,标签用引号括起来,后面跟一个冒号和数值(支持到两位小数)。

此外,Mermaid允许对饼形图进行一些配置,例如:

  • textPosition: 这个参数用于设置饼形图中每个切片标签的轴向位置,从0.0(圆心)到1.0(圆的外缘)。

示例代码和进一步的信息可以在Mermaid官方文档中找到。

2. 流程图 (Flow Chart)

  • 用途: 流程图用于展示过程或系统中步骤的顺序。

  • 语法示例:

    graph LR
      A[Start] --> B{Decision}
      B -->|Yes| C[Do Something]
      B -->|No| D[Do Something Else]
      C --> D
    
    Yes
    No
    Start
    Decision
    Do Something
    Do Something Else
  • 解释: 这个流程图开始于”Start”,接着是一个决策节点”Decision”,根据条件分为”Yes”和”No”两个分支,最终都会合流到”Do Something Else”。

3. 时序图 (Sequence Diagram)

  • 用途: 时序图展示对象之间交互的顺序。

  • 语法示例:

    sequenceDiagram
      participant Alice
      participant Bob
      Alice->>Bob: Hello Bob, how are you?
      Bob-->>Alice: I am good thanks!
    
    Alice Bob Hello Bob, how are you? I am good thanks! Alice Bob
  • 解释: 这个时序图描述了Alice和Bob之间的对话。Alice首先问候Bob,Bob随后回答Alice。

4. 状态图 (State Diagram)

  • 用途: 状态图描述系统的状态以及状态之间的转换。

  • 语法示例:

    stateDiagram
      [*] --> Still
      Still --> [*]
      Still --> Moving
      Moving --> Still
      Moving --> Crash
      Crash --> [*]
    
    Still
    Moving
    Crash
  • 解释: 这个状态图展示了一个简单的系统,它从开始状态()进入静止状态(Still),然后可以移动(Moving)或返回结束状态()。移动状态可以转回静止,或者进入崩溃状态(Crash)。

5. 甘特图 (Gantt Diagram)

  • 用途: 甘特图展示项目时间线和进度。

  • 语法示例:

    gantt
      title A Gantt Diagram
      dateFormat  YYYY-MM-DD
      section Section
      A task           :a1, 2014-01-01, 30d
      Another task     :after a1  , 20d
      section Another
      Task in sec      :2014-01-12  , 12d
      another task    : 24d
    
    2014-01-05 2014-01-12 2014-01-19 2014-01-26 2014-02-02 2014-02-09 2014-02-16 A task Task in sec another task Another task Section Another A Gantt Diagram
  • 解释: 这个甘特图包括两个部分,每个部分包含不同的任务,每个任务都有明确的开始时间和持续天数。

6. 类图 (Class Diagram)

  • 用途: 类图展示类之间的关系,常用于面向对象的设计。

  • 语法示例:

  classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal <|-- Zebra
    Animal : +int age
    Animal : +String gender
    Animal: +isMammal()
    Animal: +mate()
    class Duck{
      +String beakColor
      +swim()
      +quack()
    }
    class Fish{
      -int sizeInFeet
      -canEat()
    }
    class Zebra{
      +bool is_wild
      +run()
    }
Animal
+int age
+String gender
+isMammal()
+mate()
Duck
+String beakColor
+swim()
+quack()
Fish
-int sizeInFeet
-canEat()
Zebra
+bool is_wild
+run()
  • 解释: 这个类图定义了一个基类”Animal”和三个派生类”Duck”,”

“Fish”和”Zebra”。基类包含一些共有属性和方法,而每个派生类则有其特有的属性和行为。

7. 用户旅程图

  • 用途: 用户旅程图用于表示用户在产品或服务中的体验和行为路径。

  • 语法示例:

    journey
      title My working day
      section Go to work
        Make tea: 5: Me
        Go by car: 3: Me
      section Work
        Do programming: 1: Me, Cat
        Review meetings: 2: Me
      section Go home
        Go by car: 2: Me
        Relax: 4: Me
    
    Cat Me
    Go to work
    Go to work
    Me
    Make tea
    Make tea
    Me
    Go by car
    Go by car
    Work
    Work
    Me Cat
    Do programming
    Do programming
    Me
    Review meetings
    Review meetings
    Go home
    Go home
    Me
    Go by car
    Go by car
    Me
    Relax
    Relax
    My working day
  • 解释: 这个用户旅程图以”我的工作日”为主题,分为”去工作”、“工作”和”回家”三个部分。每个部分包括不同的活动,活动旁边的数字表示优先级,而后面则标明了参与者。

以上是Mermaid中不同图表类型的详细介绍和示例。这些示例提供了基本的语法结构和使用方法。要更深入地了解Mermaid及其高级功能,建议访问Mermaid官方文档和社区资源,那里有更多的示例和详细的教程。

关注公众号,获取最新推送

关注公众号 ‘biollbug’,获取最新推送。

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值