我有一个带有7个子图簇的graphviz表示。在每个子图中,大约有20个节点是相互连接的。
每个子图具有3到10条与一个或多个集群的链路(例如,集群1中的一个节点转到集群2中的另一个节点)。
我想把所有的子图都放在一个圆圈中,这样我就可以很容易地追踪到它们之间的联系。有没有办法做到这一点?或者至少有一种方法可以确定每个子图的位置?
希望你能帮助我。谢谢你。
发布于 2022-02-04 11:25:25
Graphviz中不支持渲染循环子图群集。但是,您可以使用矩形子图来封装节点。下面是一个例子:
digraph G {
layout="fdp";
node [margin=0, fontcolor=blue, fontsize=18, width=0.4, shape=circle, style=filled]
subgraph cluster_A {
label = "Cluster A";
a1 ["shape"="point", "color"="blue", "style"="filled", fontsize="40"]
a2 ["shape"="point", "color"="blue", "style"="filled", fontsize="40"]
a3 ["shape"="point", "color"="blue", "style"="filled", fontsize="40"]
}
subgraph cluster_B {
label = "Cluster B";
b1 ["shape"="point", "color"="green", "style"="filled", fontsize="40"]
b2 ["shape"="point", "color"="green", "style"="filled", fontsize="40"]
b3 ["shape"="point", "color"="green", "style"="filled", fontsize="40"]
}
subgraph cluster_C {
label = "Cluster C";
c1 ["shape"="point", "color"="red", "style"="filled", fontsize="40"]
c2 ["shape"="point", "color"="red", "style"="filled", fontsize="40"]
c3 ["shape"="point", "color"="red", "style"="filled", fontsize="40"]
}
a1 -> b1
a2 -> b2
a3 -> b3
c1 -> b1
c2 -> b2
c3 -> b3
}

发布于 2012-11-24 03:55:13
你可以利用等级属性。这里有一种可能性。当然,您可以使用自己的代码探索更多可能性。
digraph trial {
subgraph _1 {
rank="same";
p0 [label="p0"];
p1 [label="p1"];
p2 [label="p2"];
p0-> p1 -> p2 -> p0;
}
subgraph _2 {
rank="same";
p3 [label="p3"];
p4 [label="p4"];
p3 -> p4 -> p3;
}
subgraph _3 {
rank="same";
p6 [label="p6"];
p5 [label="p5"];
p7 [label="p5"];
p5 -> p6 -> p7 -> p5;
}
p3 -> p1 [color="red"];
p2 -> p5 [color="red"];
p6 -> p4 [color="red"];
}

你可以在这里阅读有关排名的内容:http://www.graphviz.org/doc/info/attrs.html
https://stackoverflow.com/questions/13362520
复制相似问题