3

いくつかのグラフをレイアウトしようとしていますが、それを使用pygraphvizしています。グラフを作成して実行します

graph.layout(prog='dot')

を実行するprint graphと、次のような DOT 形式の表現が吐き出されます。

...
94   [height="0.5", pos="1485,18", width="0.75"];
93 -> 94     [pos="e,1485,36.104 1485,71.697 1485,63.983 1485,54.712 1485,46.112"];
98   [height="0.5", pos="1557,18", width="0.75"];
97 -> 98     [pos="e,1557,36.104 1557,71.697 1557,63.983 1557,54.712 1557,46.112"];
...

pos各ノードについて、属性が何を意味するかは明らかです。しかし、それはエッジにとって何を意味するのでしょうか? 何らかの形で 3 次スプライン表現を参照している可能性があると思いますが、matplotlib でエッジを手動で描画したい場合、これらの点をどのように使用すればよいでしょうか?

ありがとう!ウリ

4

2 に答える 2

0

このファイル:

# edge.dot

digraph G {

  A [label = "A"  xlabel="a" pos="0,100" ]
  B [label = "B"  xlabel="b" pos="100,0"]

  A -> B  [label = "A->B www"  xlabel="a->b"]   
 [pos="0,100 0,0 0,0 100,0"]
  

}

neato で実行すると、湾曲したエッジが描画されます。

dot -Kneato -n2 -Tpng -O ./edge.dot 

編集: e は終了用で、s は矢印の頭の位置の開始用です。次のポイントは、ベジエ曲線を定義します (または、技術的にベジエ曲線ではない場合、非常に類似したものです)。


pos="s,15.188,84.812 e,84.997,15.003 22.335,77.665 38.894,61.106 61.363,38.637 77.873,22.127"

https://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node12.html#:~:text=A%20B%C3%A9zier%20curve%20is%20a,the%20shape%20of%20the%20curve .

于 2021-10-08T04:56:19.670 に答える
-4

答えはここにあります: http://www.graphviz.org/doc/info/attrs.html#k:splineType

于 2012-08-01T22:33:34.420 に答える