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

问题描述 投票:2回答:1

我正在尝试绘制一个图表,其中较短的单词“神话”位于右上方,但是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"];
}
graphviz dot
1个回答
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没有任何影响。如文档中所述,它仅适用于点布局。

© www.soinside.com 2019 - 2024. All rights reserved.