Tengo un gráfico que quiero que graphviz muestre y visualice para mí. El gráfico tiene 122 bordes y 123 nodos. Los bordes son de 4 tipos diferentes y quiero que sean visualmente distinguibles. Sin embargo, aún no he decidido cuál sería la mejor manera de hacerlo, me gustaría jugar un poco con los diales. Lamentablemente, no veo nada como un atributo de "clase" o "hoja de estilo" para los bordes. Solo puedo establecer atributos visuales individualmente para cada borde (mucha repetición). Tal vez me he perdido algo? ¿Hay alguna forma, después de todo, de agregar bordes a 4 grupos diferentes y luego personalizar los grupos, no cada borde individualmente?Graphviz: ¿cómo asignar el mismo estilo a un grupo de bordes?
Respuesta
a Estilo bordes (o nodos) por grupo en lugar de individualmente, utilice subgrafo.
así:
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];}
Así que si pones el código anterior en un archivo w/una extensión ".dot"; luego renderízalo en graphviz ,, verás tres diferentes tipos de bordes, en apariencia.
Un tipo es simplemente el predeterminado (color = negro, grosor = 1, etc.) - es decir, estos bordes no están asignados a un subgrafo.
Los otros dos tipos de bordes (un grupo delgado de color verde oscuro y un grupo grueso de color amarillo brillante) se diseñan según la asignación a uno de los dos subgrupos.
subgrafo se utiliza a menudo para visualmente destacado un grupo de nodos (es decir, para distinguir un 'grupo' contigua particular de los nodos del resto de los nodos en el gráfico); sin embargo, no hay ningún requisito (como se puede ver en mi ejemplo) de que los bordes que elijas estilizar por asignación a un subgráfico dado, pertenezcan a un "grupo" de nodos contiguos: puedes designar los bordes que desees para su asignación a una determinada sub-gráfico.)
a mí, nodos de estilo por grupo es análogo a la práctica HTML de definir una clase y asignarlo a una colección de divs en el formato HTML
Mientras @ respuesta de Doug es correcta (subgrafos utilizar para asignar estilo similar a los grupos de objetos), creo que mi ejemplo es mejor:
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. Bordes ocultos en Graphviz
- 2. derecho a bordes izquierdos en punto (Graphviz)
- 3. GraphViz, agrupando los mismos bordes
- 4. Creando bordes rectos en Graphviz
- 5. Cómo prevenir bordes en graphviz a superponerse entre sí
- 6. Fuerza dos nodos para ocupar el mismo rango en Graphviz?
- 7. ¿Cómo forzar la posición de los bordes en graphviz?
- 8. Biblioteca GraphViz Bordes de estilo de rectángulo en lugar de curvas
- 9. Asignar el mismo valor a múltiples variables
- 10. Graphviz: cómo configurar el estilo de flecha 'predeterminado'?
- 11. ¿Cómo asignar un estilo de recurso dinámico en el código?
- 12. ¿Cómo aumentar el espacio entre los bordes (splines) y los nodos en graphviz?
- 13. ¿Cómo asignar un usuario a un grupo al registrarse utilizando django-userena?
- 14. Mejorando el diseño de graphviz
- 15. Graphviz, cambiando el tamaño del borde
- 16. ¿Cómo agregar etiquetas de borde en Graphviz?
- 17. ¿Es posible asignar el mismo valor a varias claves en un objeto dict a la vez?
- 18. graphviz - posiciones de nodo fijo
- 19. Graphviz: ¿Cómo pasar de .dot a un gráfico?
- 20. Team Foundation Server: Asignar elemento de trabajo a un grupo en lugar de un usuario individual
- 21. ¿Cómo asignar un archivo remoto a Carrierwave?
- 22. Seleccionar estilo de grupo en gridview
- 23. Graphviz orden de nodo .dot
- 24. de Windows Dropshadow 7 estilo en forma sin bordes
- 25. ¿Cómo puedo asignar muchos atributos de Moose al mismo tiempo?
- 26. GraphViz - ¿Cómo conectar subgrafos?
- 27. Usar el mismo estilo para TextBlock y elemento de ejecución
- 28. cómo cambiar el tamaño de fuente predeterminado para graphviz?
- 29. Cómo puedo asignar el Caret a un control en WPF
- 30. Graphviz: ¿Cómo cambiar el color del borde
¿Cómo podemos definir el estilo por defecto para subgrafos? – Pacerier
No hay necesidad de subgrafos. Todos los bordes definidos debajo de una declaración de estilo de borde con "borde [color = ... etc]" usarán ese estilo. – Bousch