要按组别而不是单独地设置边缘(或节点)的样式,请使用 subgraph。
像这样:
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标记中定义类并将其分配给一组div的做法。