在Graphviz中围绕一组顶点绘制边框

use*_*315 51 graphviz

我试图用Graphviz绘制图形.

我希望在一组顶点周围画一条虚线,象征着它们是一个更大实体的一部分.

比方说,如果我有三个顶点,如鸡蛋,鸡肉和火腿,我应该可以在它们的三个周围绘制一条虚线,并将该边框标记为食物.

mar*_*pet 78

可以将graphviz中的节点放入集群中进行分组.集群是一种特殊的子图,某些布局引擎(dot,fdp,...)支持,如果支持,集群中的节点将被绘制在一起.

从文档:

如果子图的名称以开头,则Graphviz将子图注释为特殊的簇子图.如果支持,布局引擎将执行布局,以便将属于集群的节点绘制在一起,并将集群的整个绘图包含在边界矩形内.

请注意,无论好坏,集群子图都不是DOT语言的一部分,而只是某些布局引擎所遵循的语法约定.


重要提示:子图的ID必须以cluster.


例:

graph g{
 subgraph cluster_food {
    eggs; chicken; ham;
    label="Food";
    graph[style=dotted];
 }
}
Run Code Online (Sandbox Code Playgroud)

火腿,鸡肉和鸡蛋

  • 啊,这是因为它不是***.@marapet,`cluster_`前缀显然不是*只是一个约定; 它是语法的一部分. (45认同)
  • @jameshfisher它_is_某些布局引擎使用的约定,但它不是点语言的一部分.从我的回答中的链接:_注意,无论好坏,集群子图不是DOT语言的一部分,而只是某些布局引擎所遵循的语法约定.我的回答是要表明子图**的名称**以"cluster"开头.我会在答案中强调一下. (4认同)
  • 因此我猜测子图对dot没有影响,因为我尝试添加它并且它没有导致任何变化.:( (3认同)
  • @Trejkaz你明白了吗?`graph [style = dotted]`属性对我也没有任何帮助. (3认同)
  • 是否可以控制标签的对齐方式? (2认同)