У меня есть график, который я хочу, чтобы graphviz был макет и визуализировал для меня. График имеет 122 ребра и 123 узла. Края имеют 4 разных типа, и я хочу, чтобы они были визуально различимыми. Однако я еще не решил, каким будет лучший способ сделать это, я бы немного поиграл с циферблатами. К сожалению, я не вижу ничего подобного атрибуту «class» или «stylesheet» для ребер. Я могу устанавливать визуальные атрибуты только для каждого края (много повторений). Может, я что-то пропустил? Может быть, есть какой-то способ добавить края к 4 различным группам, а затем стилизовать группы, а не каждый ребро отдельно?Graphviz: как назначить один и тот же стиль группе ребер?
ответ
к стилю края (или узлы) группой, а не по отдельности, использовать подграф.
так:
digraph G {
node [style=filled,color="#5D8AA8", fillcolor="#5D8AA8"];
subgraph c1 {
edge [color="#004225", arrowsize="0.6", penwidth="1"];
"node 1" -> "node 3";
"node 5" -> "node 7";
"node 1" -> "node 2";
label = "";
}
subgraph c2 {
edge [color="#FBEC5D", arrowsize="1.2", penwidth="3"];
"node 2" -> "node 4";
"node 4" -> "node 6";
"node 3" -> "node 5";
"node 6" -> "node 8";
label = "";
}
begin -> "node 1";
start -> "node 2";
"node 1" -> "node 4"
"node 2" -> "node 6";
start [shape=diamond];}
Так что, если вы поместите код, указанный выше в файле ж/расширением «.dot»; затем визуализируйте его в graphviz ,, вы увидите три различных типов ребер, внешний вид.
Один тип - это только по умолчанию (цвет = черный, толщина = 1 и т. Д.) - то есть эти ребра не привязаны к подграфу.
Другие два типа ребер (тонкая, темно-зеленая группа и толстая ярко-желтая группа) стилизованы на основе присвоения одному из двух кластеров подграфов.
подграф часто используется, чтобы визуально выделить узла кластера (то есть, чтобы отличить конкретную смежную группу «» узлов из остальных узлов в графе); однако, нет требования (как вы можете видеть из моего примера), что ребра, которые вы выбрали для стиля путем присвоения данному подграфу, относятся к смежной «группе» узлов - вы можете обозначить любые края, которые вы хотите присвоить, данный суб-граф.)
мне, укладка узлов по группам аналогична HTML практике определения класса и присвоения его коллекции дивы в HTML разметке
Хотя @ ответ Дуга является правильным (использовать подграфы назначить подобный стиль для групп объектов), я полагаю, что мой пример лучше:
digraph G {
compound=true;
subgraph columns {
c0r0 -> c0r1;
c0r1 -> c0r2;
c1r0 -> c1r1;
c1r1 -> c1r2;
c2r0 -> c2r1;
c2r1 -> c2r2;
}
subgraph rows {
edge [color=red, constraint=false];
c0r0 -> c1r0;
c1r0 -> c2r0;
c0r1 -> c1r1;
c1r1 -> c2r1;
c0r2 -> c1r2;
c1r2 -> c2r2;
}
}
cat square-digraph.dot | dot -Tsvg -o square-digraph.svg
- 1. Graphviz: позволяют узлам занимать один и тот же ранг
- 2. Увеличьте разделение ребер в graphviz
- 3. R назначить несколько элементов списка один и тот же объект
- 4. Создания Graphviz ребер с циклом
- 5. Почему разные идентификаторы HTML имеют один и тот же стиль?
- 6. Добавить один и тот же стиль несколько идентификаторов
- 7. Как назначить один и тот же идентификатор для строк, имеющих одно и то же поле
- 8. graphviz: subgraph имеет тот же узел, как уникальный
- 9. Как включить один и тот же xhtml дважды в один и тот же xhtml
- 10. Назначьте тот же порядковый номер группе строк
- 11. Заставить два узла занять тот же ранг в Graphviz?
- 12. Как предотвратить конкретный элемент от того, один и тот же стиль, как и другие элементы
- 13. Как назначить задачу группе?
- 14. graphviz 'dijkstra tool не учитывает веса ребер
- 15. Как назначить функцию щелчка группе
- 16. Переведите один и тот же объект несколько раз в один и тот же раскадровку
- 17. Как я могу связать кортеж и назначить один и тот же кортеж?
- 18. C++: Как назначить один и тот же ввод в строку и целое число в 2 строках?
- 19. Как назначить стиль программно
- 20. graphViz: как назначить несколько цветов узлам
- 21. Конструкторы, передающие один и тот же int?
- 22. CSS3 PIE: тот же стиль, различная презентация
- 23. Используя один и тот же параметр дважды
- 24. ControlTemplates имеют один и тот же цвет
- 25. Стек держит один и тот же элемент
- 26. ListFragments содержит один и тот же список
- 27. темы, изменяющие один и тот же файл
- 28. Удаление один и тот же объект дважды
- 29. coreplot - всегда один и тот же сюжет
- 30. Icinga2 контролирует один и тот же хост
Как мы можем установить стиль по умолчанию для подграфов? – Pacerier
Нет необходимости в подграфах. Все ребра, определенные ниже объявлением стиля края с помощью «edge [color = ... etc]», будут использовать этот стиль. – Bousch