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


91

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

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

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

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

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

私は似たようなスレッドを読んでいる他の(またはインスタンスのためのアライメントについてのスレッドを)私の問題に関して任意の助けなし。


2
'labelangle'は、headlabelsとtaillabelsでのみ機能します。さらに、ラベルを回転させず、(labeldistanceと共に)ラベルを配置する場所(まだ水平線)のみを定義します。角度0は、始点/終点からエッジに沿っています。角度+ /-で、ラベルを端の上または下に印刷できます。距離が0の場合、角度は影響を受けません。また、ラベルを回転させてエッジに沿うようにすることにも非常に興味があります。これはまだ解決されていません。
Bug313 14

1
これを行う方法はないという感覚を得ています。しかし、機能がないことはほとんど文書化されていないため(無数の文書が作成される可能性があります)、これについての信頼できる回答を書くことは困難です。ドキュメント全体にも、コードベースのあいまいなコーナーにも、このようなことについての言及がないことを指摘できない限り、
bigblind 2014年

1
Graphvizのテキスト要素はすべて、配置時に通常のボックスで囲まれます。アルゴリズムは、エッジの配置中にこれらのボックスの境界を超えないように本当に努力しています。ラベルを回転させることができると、これらのボックスがはるかに大きくなり、表示領域にかなりの圧力がかかります。ラベルがエッジまたはノードに重なる可能性がある場合、それらは後でイメージングパイプラインで回転できます。
Pekka

1
実際には、ドキュメントでそれを見つけることができます:github.com/ellson/graphviz/blob/master/doc/internal_todo.html「 -角度でテキストを許可しますか?」
MKを。

回答:


5

使用dot2latexすると、指定することを可能にするlblstyle属性を。の値は、PDF生成でPGF / TikZlblstyleによって使用されます。

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

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

結果は

ここに画像の説明を入力してください


残念ながら、グラフを生成するときは、すべてのラベルの角度を知る必要があります。OPは、ラベルがエッジと平行になるように、エッジが偶然どんな角度でも表示したいと考えています。
Galax

1
@Galaxコメントありがとうございます。答えを直した。
マルバーボ2016

すばらしい発見-これはの便利な機能ですdot。以前は気が付かなかった(または新しいかもしれません)。
Galax

-1

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

最良のオプションは、グラフをとしてエクスポートしてSVG使用するIllustratorInkscape、微調整することです。これは、いくつかのグラフを作成する場合にのみ実用的です。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.