これはmermaid.jsを利用したものです。今回は中身を別ファイルmmd.mmdに記述しました:
sequenceDiagram
ぞうさん->>Aさん: 「みんなで飲みに行かない?」
Aさん->>ぞうさん: 「ちょっと待ってて」
Aさん->>Bさん: 「飲みに誘われた」
Bさん->>Aさん: 「ぞうさんめんどくさい」
Bさん->>Cさん: 「どう思う?」
Cさん->>Bさん: 「おごりならおk」
Bさん->>Cさん: 「おk把握」
Bさん->>Aさん: 「予算次第でおk」
Aさん->>Bさん: 「了解」
Aさん->>ぞうさん: 「おごりならみんなおk」
ぞうさん->>Aさん: 「それはできない」
Aさん->>ぞうさん: 「なら無理」
Bさん->>ぞうさん: 「マジ無理」
Cさん->>ぞうさん: 「もう無理」
このコードを記述したファイルをDiagrammeR::mermaid()で読み込みます:
library(DiagrammeR)
mermaid("mmd.mmd")
こんな感じになります。なお、ファイル名を指定しているところに中身のコードをまんま記述しても同じ結果が得られます。
これはGraphviz.jsを利用したものです。今回は別ファイルgvtest.gvに中身を記述しました:
digraph dot {
node [shape = circle,
style = filled,
color = grey]
node [fillcolor = lemonchiffon,
label = '一般神']
a
node [fillcolor = greenyellow,
label = '超人']
b c d
node [fillcolor = darkseagreen,
label = '一般人']
edge [color = grey,
arrowhead = inv]
a -> {b c d}
b -> {e f g }
c -> {k l m }
d -> {q r s }
}
このコードを記述したファイルをDiagrammeR::grViz()で読み込みます:
grViz("gvtest.gv")
こんな感じになります。なお、ファイル名を指定しているところに中身のコードをまんま記述しても同じ結果が得られます。
これはもちろんR Markdownに対応しています。なのでHTMLやPDFのドキュメントに一気にできます。
ただ、docx形式にそのまま出力しようとするとエラーが出ます。一回画像ファイルに落とし込むようにしたら行けるかも知れませんが、今回は面倒なのでパスします。
このように有用なパッケージなので、どなたか公式ドキュメントの解説記事を……どなたか……
Enjoy!!