Отображать метки в соответствии с краем при использовании Graphviz - программирование
Подтвердить что ты не робот

Отображать метки в соответствии с краем при использовании Graphviz

Я использую Graphviz 2.30. Горизонтальное позиционирование для этикеток работает, но в некоторых случаях желателен измененный угол.

Например, я пробовал различные значения для угла здесь, но без какого-либо эффекта:

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

Как я могу отображать метки в соответствии с (например, параллельно) грани при использовании Graphviz digraph.

Целый digraph не будет отправлен из-за NDA. Кроме того, вращение будет применяться только к нескольким меткам.

Я прочитал похожие темы, такие как this или another (или поток о выравнивании, например), но без какой-либо помощи в отношении моей проблемы.

4b9b3361

Ответ 1

Используя dot2latex, вы можете указать lblstyle. Значение lblstyle используется PGF/TikZ в формате pdf.

Можно указать параллельные метки следующим образом:

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

Результат

введите описание изображения здесь

Ответ 2

Изменить: в другом ответе найден вариант, который теперь существует для выравнивания текста с ребрами.

Ваш лучший вариант - экспортировать график как SVG и использовать Illustrator или Inkscape для его тонкой настройки. Это практично только при создании нескольких графиков.

Мне часто приходится настраивать выходные данные из Graphviz и Gephi; они дают мне хорошую отправную точку.