Подтвердить что ты не робот

Как определить двойные линии для ребер и node фигур в точке графика?

Как можно использовать ребра и узлы с помощью graphviz dot с удвоенными строками, как показано в узлах "LEGAL" и "TAX DISC" следующей диаграммы?

ER Diagram

4b9b3361

Ответ 1

Удвоенные формы могут быть сделаны с помощью [peripheries=2] на node

Удвоенные края можно сделать, указав более одного цвета для края, разделенного двоеточием. В этом случае используйте один и тот же цвет дважды: [color="black:black"] (или, чтобы отделить их немного больше, сделайте [color="black:invis:black"])

Я получил там в конце концов! Извините за "эволюционный" характер этого ответа: -)

Итак, например

graph G {
    Foo [peripheries=2]
    Foo -- Bar [color="black:white:black"]
}

Ответ 2

Принятый ответ является правильным при использовании атрибута peripheries для контуров нескольких узлов.

Однако использование цвета white для рисования широко разделенных двойных ребер между узлами не является идеальным. Если такой край нарисован на небелом фоне или пересекает небелые объекты, будет видна белая линия. Гораздо лучше использовать один из цветов none или invis. Чтобы обновить часть примера из принятого ответа:

graph G {
    Foo [peripheries = 2]
    Foo -- Bar [color = "black:invis:black"]
}

Для получения дополнительной информации см. документацию по цвету Graphviz.

Ответ 3

(См. другие ответы о нормальных ребрах и узлах)

Трехцветное решение не работает с направленными краями с dir="back".

digraph A {
    foo -> bar [dir = "back", color = "black:invis:black"];
}

приводит к таким выводам:

enter image description here

Я попытался обернуть его слоями invis снаружи. Выглядит немного странно по сравнению с обычными стрелками из-за увеличенной ширины кромки, но по крайней мере это понятно читателям:

digraph A {
    foo -> bar [dir = "back", color = "invis:black:invis:black:invis"];
}

enter image description here

Однако это не будет работать с передними краями.