13. 応用例: Grpahviz等で家系図を#
13.1. 仮想敵な一族の家系図#
13.1.1. blockdaig#
blockdiagでの仮想的な一族の家系図を作成してみます。グループと婚姻関係を表すコンポーネントを 導入しています。

図 13.1 blockdiag での家系図#
同じ一族の家系図をgraphvizで描画してみます。
図 13.2 graphviz例#
図 13.3 graphviz例(digraph and neato)#
PlantUMLのコンポーネント図(あるいは配置図?)を使った作例です。 婚姻関係を表現するために、rectangle を導入しています。夫婦と婚姻関係を表現するために、 表示ラベルが空白(" ")のインタフェースコンポーネントを導入しています。
図 13.4 plantUMLによる作例#
13.2. Caroline Bouvier Kennedyの家系図#
Graphviz ギャラリー:家系図 にある 家系図の一例。 婚姻関係に rank=same の条件を追加しました。
図 13.5 Colors and forms symbolize following * Blue box - man * Red ellipse - woman * Blue line - Father/Child relation * Red line - Mother/Child relation * Green line - Spouse relation * Orange line - Ancestors (other) children * Violet line - (other) spouse#
13.2.1. neato#
同じグラフをレイアウトエンジンを neato として描いてみます。
図 13.6 Colors and forms symbolize following#
ケネディ家の家系図をPlantUML化してみます。
図 13.7 ケネディ家の家系図(using PlantUML)#
13.3. UNIX Family 'Tree'#
13.3.1. オリジナル(Graphviz)のUnix Family Tree#
13.3.2. PlantUMLでのUnix Tree 図#
図 13.8 "courtesy Ian Darwin and Geoff Collyer, Softquad Inc."#
13.4. Other Example#
stack overflow: Family tree layout with Dot/GraphViz の回答からの例。 graphvizの処理系によって結果が異なる。
図 13.9 original#
これを少し書き換えてみた結果、Abraham-Monaの位置がうまくコントロールできません。
図 13.10 変更版#
図 13.11 ネットで提案された改善例#
PlantUMLで書き換えてみた結果、
図 13.12 PlantUML版#
図 13.13 ネットで提案された改善例をPlantUMLで書き直す。#
13.5. KEKの組織図 in PlantUML#
家系図ではないですが、同様の使い方で組織図も描けるのではと試してみます。
KEKの組織図は、https://www.kek.jp/wp-content/uploads/2024/04/orgchart_ja_20240401.pdf に掲載されている。 PlantUMLのWBSのような上から下へのトップダウンとはなっておらず、経営協議会/教育研究評議会/研究所運営会議とかどう取り扱って いいかわからない。 日本的組織とはそういうもんかとも思います。
一方で、PlantUMLのWBSもWBSのように、上から下への流れが定義によってはっきりしているものはよいが、組織図や、家系図といったものを一般的に表すことはできない様に感じます。
結局PlantUMLではコンポーネント図/配置図をベースにして、調整することができました。組織図も家系図の例のように、色々な手段を弄してなるべく近いものにしてみます。 (現状の組織を論理的な図にしてみることで、現状の組織の問題点が浮かびでるということもあるかとおもいます。)
KEKの組織図は組織としての役割と、所長会議の様な会議体が混じっているために、PlantUMLやgraphvizの様な表現に馴染まないような気もします。
とりあえずの試作版です。
図 13.14 PlantUMLのコンポーネント図を使い、KEKの組織図を書くことに挑戦#