Graphviz图定位xlabels

use*_*494 24 graphviz

我尝试过使用xlp并且也遵循这个graphviz线程(http://www.graphviz.org/content/how-use-xlp-attribute-positioning-external-labels-xlabel),但两者都没有实际工作.

这是我的点代码:

digraph {
    forcelabels=true;
    rankdir=LR;
    graph[ranksep=1,nodesep=.5];
    node[shape=box];
    "start" [xlabel="start",xlp="0,0",shape=doublecircle,label=" "];
    "requested"->"fault";
    "requested"->"progress";
    "start"->"requested";
    "progress"->"fault";
    "progress"->"progress";
    "progress"->"complete";
    "fault" [xlabel="fault",shape=doublecircle,label=" "];
    "complete" [xlabel="complete",shape=doublecircle,label=" "];
}
Run Code Online (Sandbox Code Playgroud)

这就是它的样子: 在此输入图像描述

理想情况下,start,fault和complete将直接位于节点之下,但我似乎无法正确定位xlabels.

Iva*_*aer 10

如果您使用neato-n2标志,你应该能够设置的位置xlabel.但是,您需要指定每个节点的位置.

因此,如果您有一个lb.gv使用以下内容调用的文件:

digraph{
    forcelabels=true;
    rankdir=LR;
    graph[ranksep=1,nodesep=.5,margin=0.3,bgcolor=Transparent];

    node[shape=box];
    start [pos="0,0", xlp="23,54", xlabel=start, shape=doublecircle, label= " "];
    requested [pos="100,0"];
    progress [pos="250,-66"];
    fault [pos="400,70", xlp="424,124", xlabel=fault, shape=doublecircle,label= " "];
    complete [pos="400,-66", xlp="424,-10", xlabel=complete, shape=doublecircle,label= " "];
    requested->fault;
    requested->progress;
    start->requested;
    progress->fault;
    progress:w->progress:_;
    progress->complete;
}
Run Code Online (Sandbox Code Playgroud)

你可以跑 neato -n2 -Tpng lb.gv > test.png

这就是我得到的:

graphviz的

  • 注意:这**迫使你明确地放置一切,这很痛苦,一半会破坏graphviz的目的. (6认同)
  • @IvanChaer,功能请求现在是 https://gitlab.com/graphviz/graphviz/issues/299 和 https://gitlab.com/graphviz/graphviz/issues/68 (2认同)