MarkDown画图(实例讲解) —— 流程图、序列图、饼图、甘特图

只有用过,才能掌握

写这篇文章的目的主要是学习markdown画图。目前支持画图的MarkDown工具只有Typora和有道云笔记

ProcessOn VS MarkDown。虽然ProcessOn也能做这件事情,但是每次使用都要以图片的形式进行编辑,不便于微调。在不同应用之间前切换也比较麻烦

我的学习方法。我会想出一个综合性的场景,然后把所有的知识点融入到一张图里去。这样做的好处是,回忆的时候只用回忆一张图就够了,提高回忆效率。

语法参见官网

文章目录如下:

  • 流程图代码如下:
  • 代码说明:
  • typora中效果图如下:
  • 序列图代码如下:
  • 代码说明:
  • typora中效果图如下:
  • 饼图代码如下:
  • typora中效果图如下:
  • 甘特图代码说明:
  • 代码如下:
  • typora中展示效果如下:

流程图

代码如下:

graph TB;
subgraph 分情况
A(开始)-->B{判断}
end
B--第一种情况-->C[第一种方案]
B--第二种情况-->D[第二种方案]
B--第三种情况-->F{第三种方案}
subgraph 分种类
F-.第1个.->J((测试圆形))
F-.第2个.->H>右向旗帜形]
end
H---I(测试完毕)
C--票数100---I(测试完毕)
D---I(测试完毕)
J---I(测试完毕)

代码说明:

字母表示 含义
TB 从上到下
BT 从下到上
LR 从左到右
RL 从右到左
表述 说明 含义
id[文字] 矩形节点 表示过程
id(文字) 圆角矩形节点 表示开始与结束
id((文字)) 圆形节点 表示连接。为避免流程过长或有交叉,可将流程切开成对
id{文字} 菱形节点 表示判断、决策
id>文字 ] 右向旗帜节点
  1. T、B、L、T分别是Top/Bottom/Left/Right的缩写
  1. id为节点的唯一标识,类似于变量。括号内为节点要显示的文字
  1. 单向箭头为流程进行方向。支持虚线与实线,有箭头与无箭头、有文字与无文字。分别是---、-.-、 -->、-.->、--文字-->、-.文字.->、--文字---、-.文字.-
  1. 支持子图。如代码、效果图所示。

typora中效果图如下:

流程图.png

序列图

序列图共有5个部分,分别是:参与者、消息线、循环、选择、可选、并行、注解。我们来模拟一个综合场景,如下图所示:

购买书籍序列图.jpg

代码如下:

sequenceDiagram
Title: 小明买书
​
participant consumer as 小明
participant store as 书店
participant publisher as 出版社
​
consumer ->> store: 想买一本限量版书籍
store -->> consumer: 缺货
consumer ->> store: 隔一个月再次询问
store -->> consumer: 抢完了
loop 一个星期一次
consumer -x +store: 有货了吗
store --x -consumer: 正在订,有货马上通知你
end
​
store ->> publisher: 我要订购一批货
publisher --x store: 返回所有书籍的类别信息
​
alt 书籍类别符合要求
store ->> publisher: 请求书单信息
publisher --x store: 返回该类别书单信息
else 书单里的书有市场需求
store ->> publisher: 购买指定数据
publisher --x store: 确认订单
else 书籍不符合要求
store -->> publisher: 暂时不购买
end
​
par 并行执行
publisher ->> publisher : 生产
publisher ->> publisher : 销售
end
​
opt 书籍购买量>=500 && 库存>=50
publisher ->> store : 出货
store --x publisher : 确认收货
end
​
Note left of consumer : 图书收藏家
Note over consumer,store : 去书店购买书籍
Note left of store : 全国知名书店
Note over store,publisher : 去出版社进货
Note left of publisher : 持有版权的出版社

代码说明:

  1. 消息线
类型 描述
-> 无箭头的实线
--> 无箭头的虚线
->> 有箭头的实线(主动发出消息)
-->> 有箭头的虚线(响应)
-x 末端为X的实线(主动发出异步消息)
--x 有箭头的实线(以异步形式响应消息)

alt 可以理解为可替代的方案,可能的情况

opt可以理解为一个if语句,满足条件下执行的操作

typora中效果图如下:

序列图.png

饼图

代码如下:

pie
 title Pie Chart
 "Dogs" : 386
 "cats" : 567
 "rabbit" : 700
 "pig":365
 "tiger" : 15

typora中效果图如下:

饼图.png

甘特图

这是我用Process做的,我们就以张图为例,用MarkDown画一张甘特图吧。

顺便对比一下这两种方式,看看哪个展示效果好一点

甘特图.jpg

代码说明:

从官网上看一下语法,如下所示:

gantt
 dateFormat  YYYY-MM-DD    //底部的时间格式
 title     Adding GANTT diagram functionality to mermaid   //甘特图名称
 excludes   weekends               //周末有休息
​
 section A         //可以理解为一个功能模块
 task1        :done,des1, 2014-01-06,2014-01-08   //可以理解为这个功能模块的各项进度安排
 task2        :active,des2, 2014-01-09, 3d      //以下参数都是合法的
 task3        :des3, after des2, 5d          //我们等一下每个都试一下
 task4        :crit, done, 2014-01-06,24h
 task5        :crit, done, after des1, 2d
 task6        :crit, active, 3d
 task7        :crit, 5d
 task8        :2d
 task9        :1d
 ...         :[参数1:crit,可不填],[参数2:active,done,可不填表示待完成],[参数3:小名],
 [参数4:开始时间],[参数5:结束时间]
 section B
 section C 
 ...

这里要注意的是,时间的表示有多种,如上,

可以是

  • 2014-01-06,2014-01-08

  • 2014-01-09, 3d

  • after des2, 5d

  • 5d

  • 状态默认是待完成,建议给每个任务desc

代码如下:

gantt
 dateFormat  YYYY-MM-DD
 title     软件开发任务进度安排 
 excludes   weekends
​
 section 软硬件选型 
 硬件选择      :done,desc1, 2020-01-01,6w 
 软件设计      :active,desc2, after desc1,3w

 section 编码准备
 软件选择       :crit,done,desc3,2020-01-01,2020-01-29
 编码和测试软件   :1w
 安装测试系统    :2020-02-12,1w

 section 完成论文
 编写手册      :desc5,2020-01-01,10w
 论文修改      :crit,after desc3,3w
 论文定稿      :after desc5,3w

typora中展示效果如下:

甘特图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343