眾所周知鼓黔,在各大支持Markdown語法的編輯器(例如Typora, 印象筆記)中,可以通過mermaid代碼塊的方式不见,實(shí)現(xiàn)流程圖澳化、時(shí)序圖等圖表的繪制。它是一種基于 Javascript 的圖表和圖表工具稳吮,提供標(biāo)記啟發(fā)的文本定義缎谷,以動態(tài)創(chuàng)建和修改圖表。
以下是除了普通的流程圖以外盖高,常用的一些mermaid功能慎陵。
本文效果均在Typora for Windows上實(shí)現(xiàn)眼虱。
1. 曲線連接的流程圖
在繪制流程圖的時(shí)候喻奥,將graph
替換成flowchart
,可以呈現(xiàn)節(jié)點(diǎn)之間的曲線連接捏悬。比之前生硬的折線段美觀很多撞蚕。同時(shí),flowchart還可以實(shí)現(xiàn)不同子圖(subgraph)之間的連通过牙,并且允許箭頭逆向甥厦。相比之下,graph就只能在節(jié)點(diǎn)和節(jié)點(diǎn)之間按照既定方向相連寇钉。
不過官網(wǎng)上顯示flowchart仍然是測試版本刀疙,功能上可能會有一些欠缺。
flowchart TB
c1-->a2
subgraph one
a1-->a2
end
subgraph two
b1
end
subgraph three
c1-->c2
end
one --> two
three --> two
two --> c2
和graph對比之下扫倡,flowchart的特點(diǎn)就很明顯了谦秧。
2. 甘特圖
甘特圖可以在時(shí)間軸上記錄不同的事件名稱、時(shí)長跨度和狀態(tài)。
gantt
dateFormat YYYY-MM-DD
title 甘特圖名稱
section 類別A
已經(jīng)完成的任務(wù) : done, des1, 2014-01-06, 2014-01-08
進(jìn)行中的任務(wù) : active, des2, 2014-01-09, 3d
未來的任務(wù) : des3, after des2, 5d
section 類別B
完成的關(guān)鍵任務(wù) :crit, done, 2014-01-06, 24h
進(jìn)行中的關(guān)鍵任務(wù) :crit, active, 3d
將來的關(guān)鍵任務(wù) :crit, 5d
第二行的YYYY-MM-DD
是日期格式疚鲤,也可以嘗試MM-DD-YYYY
锥累,YYYY
等等不同的格式。
每一項(xiàng)任務(wù)的描述格式均為:
任務(wù)名稱: 是否關(guān)鍵(crit/缺省), 狀態(tài)(done/active/缺省), 任務(wù)代號(代號/缺省), 開始時(shí)間(YYYY-MM-DD/after 其他代號/缺省), 結(jié)束時(shí)間(YYYY-MM-DD/持續(xù)時(shí)長/缺省)
每一欄的缺省含義依次是
- 非關(guān)鍵任務(wù)
- 任務(wù)未開始
- 任務(wù)沒有代號
- 緊接上一任務(wù)的結(jié)束時(shí)間開始
- 沒有持續(xù)時(shí)長(即為一個(gè)點(diǎn)事件)
3. 餅圖
作為需要統(tǒng)計(jì)各種數(shù)據(jù)的科研人集歇,看到餅圖不由得眼前一亮桶略。pie會按照類別占比有小到大的順序排列并餅塊,并計(jì)算出各部分的百分比诲宇。語法結(jié)構(gòu)也很簡單:
pie
title 餅圖名稱
"類別A" : 42.96
"類別B" : 50.05
"類別C" : 10.01
但是遺憾的是蹬挺,mermaid在統(tǒng)計(jì)圖表這方面并不能提供更多的選項(xiàng)。如果需要做折線圖它掂、柱狀圖等等各種豐富的內(nèi)容巴帮,還是得移步Python, MATLAB或者其他專業(yè)工具啦,
mermaid還有繪制其他圖表的功能虐秋,比如Sequence Diagram榕茧,Class Diagram,User Journey等等客给。由于本人平時(shí)不太可能用到用押,所以沒有細(xì)究。所有內(nèi)容都可以在開發(fā)者的教程(https://mermaid-js.github.io/mermaid)上找到靶剑!
除了mermaid之外蜻拨,Typora的代碼塊還能渲染其他很多模塊。比如分析程序的時(shí)候經(jīng)常會用到flow
模塊來畫流程圖桩引。之后有空會慢慢探索缎讼、梳理這些豐富的功能。