Как стилизовать ребра и узлы с помощью graphviz dot с двойными линиями, как показано в узлах "LEGAL" и "TAX DISC" на следующей диаграмме?
Как определить двойные линии для форм ребер и узлов в графической точке?
Ответы (3)
Двойные формы можно сделать, используя [peripheries=2]
на узле.
Сдвоенные края можно сделать, указав более одного цвета для края, разделенных двоеточием. В этом случае используйте один и тот же цвет дважды: [color="black:black"]
(или, чтобы разделить их немного больше, сделайте [color="black:invis:black"]
)
Я добрался туда в конце концов! Извините за «эволюционный» характер этого ответа :-)
Так например
graph G {
Foo [peripheries=2]
Foo -- Bar [color="black:white:black"]
}
white
с небелым фоном или объектами может вызвать проблемы. См. мой ответ для лучшего решения.
- person Mr. Lance E Sloan; 10.06.2015
принятый ответ верен в отношении использования атрибута peripheries
для контуров нескольких узлов.
Однако использование цвета white
для рисования разнесенных двойных ребер между узлами не является идеальным. Если такое ребро нарисовано на небелом фоне или пересекает небелые объекты, будет видна белая линия. Гораздо лучше использовать один из цветов none
или invis
. Чтобы обновить часть примера из принятого ответа:
graph G {
Foo [peripheries = 2]
Foo -- Bar [color = "black:invis:black"]
}
Дополнительные сведения см. в документации по цветам Graphviz.
(См. другие ответы о нормальных ребрах и узлах)
Трехцветное решение не работает с направленными краями с 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"];
}
Однако это не будет работать с передними краями.