Как определить двойные линии для ребер и node фигур в точке графика?
Как можно использовать ребра и узлы с помощью graphvizdot с удвоенными строками, как показано в узлах "LEGAL" и "TAX DISC" следующей диаграммы?
Ответ 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"]
}
Трехцветное решение не работает с направленными краями с dir="back".
digraph A {
foo -> bar [dir = "back", color = "black:invis:black"];
}
приводит к таким выводам:
Я попытался обернуть его слоями invis снаружи. Выглядит немного странно по сравнению с обычными стрелками из-за увеличенной ширины кромки, но по крайней мере это понятно читателям:
digraph A {
foo -> bar [dir = "back", color = "invis:black:invis:black:invis"];
}