2011-11-29 120 views
7

私はneatoによって処理されるグラフを持っており、新しいエッジを追加しています。しかし、私は古いノードを移動させたくありません。私はneatoが新しいノードの新しい位置を計算し、古いノードを同じ場所に置くことを望みます。graphviz - 固定ノードの位置

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
} 

と私は新しいエッジを追加します。

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
    node1 -- node2 [len="3"]; 
    ... 
} 

私は昔のノードで同じ位置を取得したいです。例:

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
    node2 [pos="3,4"]; 
    ... 
} 

どうすればいいですか?

答えて

13

ノードの位置を固定するには、node attribute pin=trueを設定します。

または '!' pos属性の末尾に:pos="34,12!"

+0

'$ cat g.dot 厳密なグラフ{ \t node0 [pos =" 2363.2,13230! "]; \t node1 [pos = "2452.2,1335!"]; \t node1 - node2 [len = "9.4"]; } ' と格好いい実行:' $格好いいg.dot 厳密グラフ{ \tノード[LABEL = "\ N"]。 \tグラフ[bb = "0,0,71043,8.9511e + 05"]; \t node0 [pos = "64603,8.9509e + 05"、width = "0.9027"、height = "0.5"]; \t node1 [pos = "71011,38647"、width = "0.89579"、height = "0.5"]; \t node2 [pos = "32.249,18"、width = "0.89579"、height = "0.5"]; \t node1 - node2 [len = "9.4"、pos = "70988,38634 69544,37849 1500.7,817.18 55.599,30.708"]; } 'それは非常に奇妙な数字を与える – microo8

+0

Yay! '!'バージョンもpygraphvizで動作します。 pin = trueバージョンはneatoをクラッシュします(pygraphvizで設定した場合)。 – darkhipo

1

-nオプションを付けて実行すると、このトリックが実行されます。

+0

これは実際に動作しますが、 'neato'だけで動作することに注意してください。 –