• ベストアンサー

graphvizで到達矢印の位置を選択したい。

図にも添付しているのですが、Graphvizの矢印が到達する位置を選択するにはどうしたらよいでしょうか。 上下左右の位置から選択したいです。 a->b[dir=none, ???];という時に、???の箇所にどのように文字を入力すれば可能なのでしょうか。 以上、ご教授のほどよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

結論から言う、 ??? ではなく、 a,bの指定で、「aの何処」から「bの何処」という感じで使います。 a:n -> b:sw ; とすると、 a:n が ノードa の 上( n=北=上) 、 b:sw が ノードb の 左下( sw=南西 ) となり ノードa の 上 から ノードb の 左下 へのエッジになります。 http://www.graphviz.org/content/dot-language に書いてはあるんですが、ちょっとわかりずらいです。 エッジの文法は edge_stmt : (node_id | subgraph) edgeRHS [ attr_list ] で、 node_id は node_id : ID [ port ] で、portは port : ':' ID [ ':' compass_pt ] で compass_ptは compass_pt : (n | ne | e | se | s | sw | w | nw | c | _) です。 a->b [dir=none]; というのは node_id nodeop node_id attr_list という文法に従っていて、 node_idは a edgeop は -> node_idは b attr_list は [dir=none] ということになります。 ここで、 node_id として、何処に接続するかを port で指定するようにします。 compass_pt を使った例が最初に示したものです。 他にIDを使って指定する例が以下に載っています http://www.graphviz.org/content/node-shapes