タグ

2018年9月10日のブックマーク (3件)

  • Graphvizの基本 - 03 - いろは二〇八

    使い方(つづき) 前回、前々回に引き続き、Graphvizの使い方を解説します。 今回は、例題を元に試行錯誤しながら「正解」に近づけていくプロセスを順に追っていきます。 サンプル7 WikipediaのArtificial neural networkのページにあるこちらの画像に近くなるようにDOTを書いてみます。 Wikipedia: Artificial neural network(CC BY-SA 3.0) まず、基的な要件をリストします。 有向グラフである 2〜4個のノードが縦に3列並んでいる 隣り合った列の各ノードがすべて左から右への矢印で結ばれている 各列の上部に列のタイトルがある ノードは円形でラベルはなく大きさはすべて同じである ノードとタイトル文字列は列ごとに赤、青、緑の色になっている 以下の順で作成してきます。 有向グラフを定義し、基的な配置を行う ラベル付け、整

    Graphvizの基本 - 03 - いろは二〇八
  • Graphvizの基本 - 02 - いろは二〇八

    使い方(つづき) 前回に引き続き、Graphvizの使い方を解説します。 このページではレイアウトは dot を前提とした説明になります。 自分でDOTファイルを書かずにサードパーティ製のツール経由でGraphvizを利用するだけという方は読み飛ばしてください。 サンプル4 ノードをグループ化したいときは、subgraph を使用します。 特殊なルールとして、サブグラフのグラフ名を “cluster” で始めると枠が自動的に付きます(penwidth=0で消すこともできます)。 // sample04_1.gv digraph sample04_1 { subgraph cluster_0 { a -> b; label=“cluster 0”; } subgraph cluster_1 { x -> y -> z; label=“cluster 1”; } a -> x; } sampl

    Graphvizの基本 - 02 - いろは二〇八
  • dot(graphviz)でsubgraph間の位置関係を整える

    dotを使う時, node間の位置の調整には以下のようにrankを使う. digraph { a -> b b -> c {rank = same; b; c} } しかし, これは subgraph間に適用することができない. 例えば, 以下のようにrankを設定すると, 画像の通りcluster0, cluster1という新たなnodeとして解釈される. digraph { subgraph cluster0 { a  -> b } subgraph cluster1 { A -> B } a -> A b -> B {rank = same; cluster0; cluster1;} } この場合は, newrankなる属性をいじれば対処可能(参考: http://stackoverflow.com/questions/6824431/placing-clusters-on-the-