能否在Graphviz中实现类似Cluster1/2的分层双矩形集群样式?
在Graphviz中实现分层双矩形集群样式
完全可以实现这种双层矩形的集群样式,下面提供两种常用的实现方式:
方式一:嵌套子集群
通过嵌套两层集群来模拟分层矩形,这种方式能更灵活地控制内外层的样式和间距:
digraph G { # 外层集群(外框) subgraph cluster_cluster1 { style="filled"; color="#cccccc"; fillcolor="#f5f5f5"; label="Cluster1"; margin=20; # 控制外层集群的外边距,同时拉开和内层的距离 # 内层集群(内框) subgraph cluster_inner1 { style="filled"; color="#666666"; fillcolor="#ffffff"; margin=10; # 控制内层和节点的间距 NodeA [label="节点A"]; NodeB [label="节点B"]; NodeA -> NodeB; } } subgraph cluster_cluster2 { style="filled"; color="#cccccc"; fillcolor="#f5f5f5"; label="Cluster2"; margin=20; subgraph cluster_inner2 { style="filled"; color="#666666"; fillcolor="#ffffff"; margin=10; NodeC [label="节点C"]; NodeD [label="节点D"]; NodeC -> NodeD; } } }
方式二:利用peripheries属性
如果不需要单独设置内外层的填充色,直接用peripheries生成双层边框更简洁:
digraph G { subgraph cluster_cluster1 { peripheries=2; # 指定生成两层边框 color="#cccccc:#666666"; # 用冒号分隔两层边框的颜色 style="filled"; fillcolor="#ffffff"; label="Cluster1"; margin=20; NodeA [label="节点A"]; NodeB [label="节点B"]; NodeA -> NodeB; } subgraph cluster_cluster2 { peripheries=2; color="#cccccc:#666666"; style="filled"; fillcolor="#ffffff"; label="Cluster2"; margin=20; NodeC [label="节点C"]; NodeD [label="节点D"]; NodeC -> NodeD; } }
关键参数说明:
margin:调整集群边框和内部元素(或外层集群和内层集群)的间距,数值越大间距越宽color:设置边框颜色,嵌套方式下分别给内外层集群设置;peripheries方式下用冒号分隔两层颜色fillcolor:设置集群内部的填充色,嵌套方式下可以给内外层设置不同颜色,实现分层视觉效果
内容的提问来源于stack exchange,提问作者Alaneuler
相关产品推荐
相关产品推荐

