我尝试使用Graphviz制作类似的东西:
x y z
| | |
# | |
a#__\| |
# /#b |
# #__\|
# # /#c
# d#/__#
# #\ x
# # |
e#/__# |
#\ # |
但排名似乎并没有像我预期的那样发挥作用。我希望e
低于所有其他节点。
digraph x
{
rankdir = tb;
size = "7.5, 7.5";
rank = source;
a -> b -> c -> d -> e;
subgraph "cluster x"
{
style=filled;
color=lightgrey;
label="x";
a -> e [style=invis];
}
subgraph "cluster y"
{
label="y";
b -> d [style=invis];
}
subgraph "cluster z"
{
label="z";
c;
}
}
我尝试使用clusterrank = global
哪种作品,但子图不会分成更明显的列,并且列上有重叠。它也没有像我想的那样走向正确。下图突出显示其中一个红色重叠,但正如您所见,有4个。
digraph x
{
rankdir = tb;
rankstep=equally;
clusterrank = global;
size = "7.5, 7.5";
a -> b -> c -> d -> e;
subgraph "cluster x"
{
style=filled;
color=lightgrey;
label="x";
a -> e [style=invis];
}
subgraph "cluster y"
{
label="y";
b -> d [style=invis];
}
subgraph "cluster z"
{
label="z";
c;
}
}
我尝试制作一个单独的群集,该群集将保证从上到下的排名,然后将相应的群集排在一起,但它与之前的尝试相同,删除了第一个看到的框尝试并导致不必要的重叠。
digraph x
{
rankdir = tb;
1 -> 2 -> 3 -> 4 -> 5;
a -> b -> c -> d -> e;
{ rank=same; 1; a; }
{ rank=same; 2; b; }
{ rank=same; 3; c; }
{ rank=same; 4; d; }
{ rank=same; 5; e; }
subgraph "cluster x"
{
style=filled;
color=lightgrey;
label="x";
a -> e [style=invis];
}
subgraph "cluster y"
{
label="y";
b -> d [style=invis];
}
subgraph "cluster z"
{
label="z";
c;
}
}
任何人都有任何想法尝试获得我想要的布局吗?
作为旁注,我尝试登录Graphviz论坛,但是发现从this page登录似乎不起作用。我一直有一个很长的超时问题。我检查了我的电子邮件帐户,没有任何内容。我尝试使用相同的电子邮件创建一个新帐户,并说该帐户已在使用中。然后我尝试让他们重置密码,我又遇到了一个超时问题。
有谁知道我可以联系谁来尝试解决这个烦人的登录问题?也许已登录的人可以为我发帖吗?
答案 0 :(得分:0)
使用-Gnewrank运行dot。那将根据你的草图得到你想要的东西。如果需要进行更多调整,请说明您的目标。
答案 1 :(得分:0)
您的最后一个解决方案将在您进行微调后立即生效
使用newrank=true
避免“取消装箱”群集
使用splines=...
进行游戏以调整箭头
将标签定义为单独的节点。
digraph x
{
rankdir = tb;
newrank=true;
splines=ortho;
0 -> 1 -> 2 -> 3 -> 4 -> 5;
X; Y; Z;
a -> b -> c -> d -> e;
{ rank=same; 0 X Y Z}
{ rank=same; 1; a; }
{ rank=same; 2; b; }
{ rank=same; 3; c; }
{ rank=same; 4; d; }
{ rank=same; 5; e; }
subgraph "cluster x"
{
style=filled;
color=lightgrey;
a -> e [style=invis];
}
subgraph "cluster y"
{
b -> d [style=invis];
}
subgraph "cluster z"
{
c;
}
}