web-dev-qa-db-ja.com

Graphvizを使用する場合、エッジに沿ってラベルを表示する

Graphviz 2.30を使用しています。ラベルの水平方向の配置はうまくいきますが、場合によっては、角度を変更する必要があります。

たとえば、ここではさまざまな角度の値を試しましたが、効果はありませんでした。

ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110];

Graphviz digraphを使用しているときに、エッジに沿って(つまり、平行に)ラベルを表示するにはどうすればよいですか。

NDAにより、digraph全体は投稿されません。また、回転はいくつかのラベルにのみ適用されます。

私は thisanother (または配置に関するスレッドなど)のような同様のスレッドを読みましたが、私の問題に関するヘルプはありません。

89
mnemonic

dot2latex を使用すると、 lblstyle 属性を指定できます。 lblstyleの値は、pdf生成で PGF/TikZ によって使用されます。

次のように並列ラベルを指定できます。

digraph G {
    Edge [lblstyle="above, sloped"];
    a -> b [label="ab"];
    b -> c [label="bc"];
    c -> a [label="ca"];
}

PDFを生成するには

$ dot2tex --tikzedgelabel file.dot > file.tex
$ pdflatex file.tex

結果は

enter image description here

3
malbarbo

編集:別の答えは、テキストをエッジに揃えるために現在存在するオプションを見つけました。

グラフをSVGとしてエクスポートし、IllustratorまたはInkscapeを使用してグラフを微調整することをお勧めします。これは、いくつかのグラフを作成する場合にのみ実用的です。

GraphvizGephiからの出力を頻繁に調整する必要があります。彼らは私にも良い出発点を与えます。

0
Galax