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閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373