Как определить двойные линии для ребер и node фигур в точке графика?
Как можно использовать ребра и узлы с помощью graphviz dot с удвоенными строками, как показано в узлах "LEGAL" и "TAX DISC" следующей диаграммы?
![ER Diagram]()
Ответы
Ответ 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]()
Однако это не будет работать с передними краями.