フロー図を描く、RからplantUMLへ
フロー図をRで描いていた時代
Rは統計解析用のアプリだけど、グラフィックが充実していて視覚的に楽しいグラフを描ける。それに甘んじてフロー図を描いていた。もともと複雑なフロー図を描くことがないので、これくらいのお手軽さは重宝していた。
最近になってフロー図をまた描き始めた
1年位前からフロー図を描く機会が増えてきた。
新しいことを覚えるおっくうさから、Rを引き続き使っていたのですが、フロー図が増えてくると描くためのテキストファイルを準備することが面倒になる。plotmat はオブジェクトの数だけの行列が必要で、ノードが増えると二乗で聞いてくる。
Rでフロー図を描いた理由は効率化で、当時、エクセル、パワポで閉口したマウス地獄から逃げるためでした。それが、ノードが増えて、Rが効率化の妨げになってくる。
マインドマップの利用
何かないかなあ、と探し始めたのが去年の秋。世の中、便利になったもので、いろいろ出てきました。
その中で試してよかったのが、マインドマップを使ったフロー図。CSVファイル → freemind → XMIND のコンボでした。詳しいことは、ネットにたくさん落ちてるので割愛しますが、割ときれいな図を描ける。
ただ、商用ライセンスとかの縛りがあって、プライベートで使えても、仕事ではつかえず。
UMLとの出会い
Process Flow Diagram のキーワードで検索すると出てくる、UML(Unified Modeling Language、統一モデリング言語)。あまりにヒットするので調べると、フロー図を描く機能が充実していることが分かった。
いや、便利な時代です。エディターだけでフロー図を描く時代。まっていました。
久しぶりに勉強する気が出てきました。plantUMLならmarkdownに埋め込めるようで、迷わず採用。
Rで描いた図をplantUMLで描く
Rでは2ステップでした。
- テキストファイルを準備
- Rでplotmat
最初 | 2番目 | 3番目 | 4番目 | |
---|---|---|---|---|
最初 | 0 | 0 | 0 | 0 |
2番目 | 1 | 0 | 0 | 0 |
3番目 | 1 | 0 | 0 | 0 |
4番目 | 0 | 0 | 1 | 0 |
最後 | 0 | 1 | 0 | 1 |
のファイルを
library(diagram) x <- read.delim("test.txt") plotmat(x,pos=c(1,2,1,1),box.type="rect",box.size=.1,box.prop=.5)
する。
これをplantUMLで描くとどうなるか、
@startuml title:流れ図 (*top) --> 最初 最初 --> 2番目 最初 --> 3番目 2番目 --> 4番目 3番目 --> 4番目 4番目 --> 最後 最後 --> (*) @enduml
コードの行数こそ増えたけど、テキストファイルを使わない。そして何より、すごく直感的。驚いた。