我尝试使用dot
同时使用群集来布局几个未连接的图形,以便在每个图形周围绘制和设置样式框。
问题在于,在没有聚类的渲染中,布局非常整洁并且在一个聚类中分离出未连接的图形,但是一旦我尝试使用聚类,它就会将这些聚集在一起,使用更少的空间但是输出更不清楚可以理解的(特别是一旦它开始将不同尺寸的标签打包在一起)。
这里是没有群集的版本:
以下是:
源代码 - 为了获得没有聚类的版本我只是删除了" r"在#34; cluster"结束时。
digraph G {
node[shape="rectangle",fontname="Nimbus Sans"];
subgraph cluster_a {
style=filled;
bgcolor=lightgrey;
node [style=filled,color=white];
a_vq; a_lvt; a_wvw; a_yvy;
a_zgxl; a_hqz; a_yqq; a_zofv;
a_qvr; a_qlz; a_ycr; a_ilq;
a_ouw; a_ryq; a_lgl; a_qvr->a_lgl;
a_kwr; a_qlz->a_kwr; a_yl; a_ilq->a_yl;
a_kgyr; a_hqz->a_kgyr; a_llq; a_ryq->a_llq;
a_llo; a_ryq->a_llo; a_ll; a_ryq->a_ll;
a_ito; a_ll->a_ito; a_rql; a_lgl->a_rql;
a_ier; a_kwr->a_ier; a_lql; a_yl->a_lql;
a_vhgp; a_lql->a_vhgp;
a_vq->a_lvt;
a_lvt->a_wvw;
a_lvt->a_yvy;
a_vq->a_zgxl;
a_hqz->a_yqq;
a_lvt->a_zofv;
a_yvy->a_qvr;
a_zgxl->a_qlz;
a_zgxl->a_ycr;
a_ycr->a_ilq;
a_hqz->a_ouw;
a_yqq->a_ryq;
}
subgraph cluster_b {
style=filled;
bgcolor=lightgrey;
node [style=filled,color=white];
b_uel;
}
}
我尝试在几个地方摆弄packmode属性,但它似乎打破了造型而没有解决问题,我不能完全确定即使它正常工作也能解决任何问题。
我想保留整齐,空间分离的图表和聚类布局 - 有谁知道这是否可以做到?
答案 0 :(得分:2)
更多的是黑客而不是真正的答案,但它适用于您的样本 - 使用不可见的节点和边缘。我还简化了您的代码,不确定这是否适合您的任务,但它使得查看更容易。
digraph G
{
node[ shape = "rectangle", fontname = "Nimbus Sans", height = .5, width = 1 ];
subgraph cluster_a
{
style = filled;
bgcolor = lightgrey;
node[ style = invis ]; // create
inv_1; inv_2; // invisible nodes
node[ style = filled, color = white ];
// first unconnected graph
a_hqz -> { a_ouw a_yqq a_kgyr }
a_ouw -> { inv_1 } [ style = invis ] // insert invisible nodes
a_kgyr -> { inv_2 } [ style = invis ] // using invisible edges
a_yqq -> a_ryq;
a_ryq -> { a_llq a_llo a_ll }
a_ll -> a_ito;
// second unconnected graph
a_vq -> { a_lvt a_zgxl }
a_lvt -> { a_wvw a_yvy a_zofv }
a_zgxl -> { a_qlz a_ycr }
a_yvy -> a_qvr -> a_lgl -> a_rql;
a_qlz -> a_kwr -> a_ier;
a_ycr -> a_ilq -> a_yl -> a_lql -> a_vhgp;
}
subgraph cluster_b
{
style = filled;
bgcolor = lightgrey;
node[ style = filled, color = white ];
b_uel;
}
}