graphviz 中跨越多行的记录

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

我正在尝试用点语言可视化一个相当复杂的结构。 因为记录很大,所以我想把代码写成多行。所以代替:

A11[label="A.11 Access Control|{A.11.1 Business requirements for access control|A.11.2 User access management}|{A.11.3 User responsibilities|A.11.4 Network access control}|{A.11.5 Operating System access control|A.11.6 Application & information access control}|A.11.7 Mobile computing & teleworking"];

我想像这样输入

A11[label="A.11 Access Control|
           {A.11.1 Business requirements for access control|A.11.2 User access management}|
           {A.11.3 User responsibilities|A.11.4 Network access control}|
           {A.11.5 Operating System access control|A.11.6 Application & information access control}|
           A.11.7 Mobile computing & teleworking"];

不幸的是,点的解析器抱怨“字符串超出了行尾”或类似的东西。有谁知道如何在代码中表示换行符?我在行尾尝试了

\
,但似乎不起作用。

提前致谢

visualization graphviz dot
2个回答
10
投票

我猜你想要这样的东西:

graph G{
A11[label="A.11 Access Control|\n\
{A.11.1 Business requirements for access control|A.11.2 User access management}|\n\
{A.11.3 User responsibilities|A.11.4 Network access control}|\n\
{A.11.5 Operating System access control|A.11.6 Application & information access control}|\n\
A.11.7 Mobile computing & teleworking"];
}

你也可以这样做

label = "line1\n" +
        "line2\n" + ...

0
投票

使用

\
转义换行符而不终止字符串。请注意,您可以在每个
{}
之前插入空格以缩进源代码中的行。该空格对生成的图形没有影响。

graph G{
    node [shape=record];
    A11[label="A.11 Access Control|\
        {A.11.1 Business requirements for access control|A.11.2 User access management}|\
        {A.11.3 User responsibilities|A.11.4 Network access control}|\
        {A.11.5 Operating System access control|A.11.6 Application & information access control}|\
        A.11.7 Mobile computing & teleworking"
    ];
}

演示在这里

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