3

我正在使用 DOT 生成如下所示的有向图。我希望所有边缘都有一个南尾端口和一个北头端口,因此所有边缘都源自节点的底部并进入节点的顶部。

从左图可以看出,从节点 2 到节点 4 和 6 的边缘沿着节点的一侧直线上升,看起来不太好,我希望布局能够将边缘从节点(就像我在右边的图像)

如何让边缘远离节点?

示例图:

在此处输入图像描述

上图我的 DOT 文件如下:

digraph g {
graph [
    center=true,
    nodesep=1.2,
    ranksep="1.2 equally",
    sep=6.2,
    splines=polyline
];
node [label="\N"];
0    [area=2,
    fixedsize=true,
    height=0.69444,
    label=0,
    margin=1.2,
    shape=box,
    width=1.3889];
1    [area=2,
    fixedsize=true,
    height=1.3889,
    label=1,
    margin=1.2,
    shape=box,
    width=1.3889];
0:s -> 1:n;
2    [area=2,
    fixedsize=true,
    height=1.3889,
    label=2,
    margin=1.2,
    shape=box,
    color="blue",
    width=1.3889];
0:s -> 2:n;
3    [area=2,
    fixedsize=true,
    height=0.69444,
    label=3,
    margin=1.2,
    shape=box,
    width=1.3889];
0:s -> 3:n;
4    [area=2,
    fixedsize=true,
    height=0.69444,
    label=4,
    margin=1.2,
    shape=box,
    color="red",
    width=1.3889];
1:s -> 4:n;
2:s -> 4:n;
6    [area=2,
    fixedsize=true,
    height=1.3889,
    label=6,
    margin=1.2,
    shape=box,
    color="red",
    width=1.3889];
2:s -> 6:n;
5    [area=2,
    fixedsize=true,
    height=0.69444,
    label=5,
    margin=1.2,
    shape=box,
    width=1.3889];
4:s -> 5:n;
4:s -> 6:n;
7    [area=2,
    fixedsize=true,
    height=0.69444,
    label=7,
    margin=1.2,
    shape=box,
    width=1.3889];
5:s -> 7:n;
6:s -> 7:n;
6:s -> 2:n;
7:s -> 7:n;
8    [area=2,
    fixedsize=true,
    height=0.69444,
    label=8,
    margin=1.2,
    shape=box,
    width=1.3889];
7:s -> 8:n;
}
4

1 回答 1

5

我能够使用 spines=spline 在节点和边缘线之间获得所需的分离,但它使边缘线弯曲而不是直线。

graph [
    center=true,
    nodesep=1.2,
    ranksep="1.2 equally",
    sep=6.2,
    splines=spline
];

在此处输入图像描述

于 2013-06-22T17:22:24.860 回答