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

标签 graphviz dot

我正在尝试绘制一个图表,其中较短的单词“Myth”位于右上角,但是 neato 引擎很顽固,拒绝接受 pos 输入(有或没有!)和排名输入。追加时!对于我的 pos 输入,它只会将图表拉伸(stretch)得很远,并将“原始人”保留在顶行,同时将“神话”放在底部。

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 按照正交图计算坐标,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 中不会产生任何影响。如文档中所述,它仅适用于布局。

关于graphviz - 如何强制neato引擎反转节点顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905661/

相关文章:

graphviz - 使用GraphVIZ绘制类似VISIO的图表

Graphviz:如何设置 'default' 箭头样式?

erlang - 如何可视化Erlang gen_fsm

keras - 导入错误:导入 pydot 失败。您必须安装 pydot 和 graphviz 才能使 `pydotprint` 正常工作

pycharm - 在 PyCharm 中可视化点文件

graphviz - 如何对齐节点列并包裹边缘?

graphviz - 导入 .dot 文件作为子图

r - 点边标签中的下标和希腊字母

Graphviz 垂直排序

c++ - 从 Qt 应用程序运行命令行点程序不会产生任何输出,这是怎么回事?