从Graphviz点簇子图中删除矩形

从Graphviz点簇子图中删除矩形,graphviz,dot,Graphviz,Dot,有没有一种方法可以告诉Dot使用集群,但不显示子图节点周围的矩形?您可以使用style执行此操作 使用style=invi的示例: digraph g{ subgraph cluster0 { style=invis; 1 -> 2; } } subgraph cluster1 { style=invis ... } 如果要将此作为所有子图的默认设置,请使用子图[style=invi]: digraph g{ subgraph[style=invis]; su

有没有一种方法可以告诉Dot使用集群,但不显示子图节点周围的矩形?

您可以使用
style
执行此操作

使用
style=invi
的示例:

digraph g{
 subgraph cluster0 {
  style=invis;
  1 -> 2;
 }
}
subgraph cluster1 {
  style=invis
  ...
}
如果要将此作为所有子图的默认设置,请使用
子图[style=invi]

digraph g{
 subgraph[style=invis];

 subgraph cluster0 {
  1 -> 2;
 }
}

编辑:9年后

最好的解决办法是使用

外围设备=0

这实际上会阻止在svg输出中生成矩形,而
penwidth=0
仍然包含一个多边形(带有
stroke width=“0”
,但它仍然存在)


我添加了这个,因为这是投票最多的答案。

您可以使用
style=invi

digraph g{
 subgraph cluster0 {
  style=invis;
  1 -> 2;
 }
}
subgraph cluster1 {
  style=invis
  ...
}

作为上述
style=invi
方法的替代方法,您还可以设置
pencolor=transparent
(本地或全局)。

这可以通过使用
penwidth=0
属性来完成。这既不会影响标签文本,也不会更改簇的边界框。根据图形驱动程序的不同,这可能会输出零宽度边界。使用建议的
peripheries=0
属性会强制删除默认矩形环绕,作为副作用


虽然
style=invi
pencolor=transparent
属性在大多数情况下都有效,但可能需要避免挤压集群标签并在集群周围留下一条透明线。

在不需要边框的子图中使用
penwidth=0

这就是我使用它的方式。它只会删除簇边界,不会产生任何副作用,就像
style=invi
一样,这也会删除图形标签(在我的情况下是不希望的)

查看


%0
集群2
设置
集群0
你好
集群1
世界
1.
1.
2.
2.
1-2.
3.
3.
3-2.

您也可以使用外围设备=0

这种
style=invi
方法不再是“上面”,我将编辑答案谢谢!与
style=invi
相比,
pencolor=transparent
实际上保留了子图的标签。关于子图[style=invi]有什么提示吗?将这一行添加到我的图表顶部只会给我一个语法错误。谢谢,这很有效。主图中的style=invi也可以设置默认值:有向图g{style=invi;子图cluster0{1->2;}}。不幸的是,在我的例子中,添加此属性也会删除子图标签。在我看来,这是不可取的。关于如何解决这个问题有什么建议吗?和@AviMehenwal的问题一样。。。有什么想法吗?@MatthiasLohr我已经发布了我的答案。看看那里,它对我很有用