如何在Graphviz中居中放置节点

时间:2019-05-28 07:12:11

标签: graphviz

我有这张图:

digraph Database {
graph [bb="0 0 180 96",
    fontname="Verdana-Bold",
    fontsize=14,
    labeljust=r,
    labelloc=t,
    margin=12,
    nodesep=0.5555555555555556,
    pad=0.5,
    rankdir=RL,
    ranksep=0.3472222222222222,
    sep=0.05,
    splines=spline
];
node [fixedsize=true,
    fontname=Verdana,
    fontsize=11,
    height=40,
    label="correct me",
    labelloc=c,
    margin=0,
    shape=box,
    style=rounded,
    width=100
];
Node1   [fontsize=14.0,
    height=1.3333333333333333,
    label="Here a long enough
example of a node.
Unfortunately, the text
won't remain in the box",
        width=2.4944932725694446];
}

产生以下输出: single Node output 为什么呢? (不确定图片为什么这么小) 文本/标签应居中(labelloc=c),但不能居中。

2 个答案:

答案 0 :(得分:2)

您正在使用fixedsize=true

  

如果为true,则节点的大小由width和   仅高度属性,扩展为包含文本标签。

因此,如果要确保标签包含在节点形状中,请不要使用fixedsize=true

但是,这并不能解释为什么标签没有居中,这让我想知道您使用的graphviz版本。 http://viz-js.com/之类的工具将标签居中显示(选择png输出)。

在旁注中,labelloc=c用于标签的垂直对齐。

答案 1 :(得分:0)

显然,此代码是使用某些“工具”创建的,该“工具”在代码中添加了许多荒谬的内容。 graphviz,如果以简单明了的方式指示,则不会出现此问题:

digraph Database 
{
    Node1 [ shape = box, style = rounded,
    label="Here a long enough example of a node.\nUnfortunately, the text won't remain in the box"]
}

收益

enter image description here

这对您有什么帮助?如果要使用工具创建图形,则需要找出如何按照自己想要的方式微调设置。或者您直接开始(这是我的建议)与graphviz一起工作。然后,您可以从基础知识入手,仅在实际需要时并在实际需要的范围内使用更为复杂的格式化选项。