如何强制Neato引擎反转节点顺序?

时间:2019-04-29 14:38:41

标签: graphviz dot

我试图绘制一个图形,其中较短的单词“ Myth”在右上角,但是neato引擎顽强并且拒绝接受pos输入(带或不带!)和排名输入。追加时!在我的pos输入中,它只会将图形延伸得很远,将“ Hominids”保留在第一行,而将“ Myth”放置在底部。

enter image description here

digraph G {
layout="neato";
center="true";
fontpath="C:\Windows\Fonts";
node [fontsize="14"];
node [fontname="Abode Jenson Pro"];
graph [size="10,10!"];
rankdir=LR;
meme [shape=ellipse,label="Myth",rank="min",pos="3,0!"];
gene [shape=ellipse,label="Hominids",rank="max",pos="7,10!"];
meme -> gene [arrowsize="0.5",label="increases \n survival of",fontsize="8",constraint="true"];
gene -> meme [arrowsize="0.5",label="  generate \n venerate",fontsize="8",constraint="false"];
}

1 个答案:

答案 0 :(得分:2)

Graphviz像正交图一样对坐标进行计数,其中 0 位于左下角。因此,在pos属性中,第一个坐标是从左到右的距离,第二个坐标是从下到上的距离

查看您当前的坐标值:

因此,将节点显示为图片是合乎逻辑的:您已迫使其位置保持不变!如果您将pos的值取反,则会得到所需的结果:

digraph G {
    layout="neato";
    center="true";
    fontpath="C:\Windows\Fonts";
    node [fontsize="14"];
    node [fontname="Abode Jenson Pro"];
    graph [size="10,10!"];
    meme [shape=ellipse,label="Myth",rank="min",pos="7,10"];
    gene [shape=ellipse,label="Hominids",rank="max",pos="3,0"];
    meme -> gene [arrowsize="0.5",label="increases \n survival of",fontsize="8",constraint="true"];
    gene -> meme [arrowsize="0.5",label="  generate \n venerate",fontsize="8",constraint="false"];
}

还请注意,您使用的rankdir属性对neato无效。如文档中所述,它仅适用于布局。