繁体   English   中英

graphviz 无换行符 (.dot)

[英]graphviz no line break (.dot)

我正在 LinuxArch 上使用 graphviz。 如果我打印 my.svg 我使用命令dot -Tsvg example.dot -o exampale.svg 我的图表已打印,效果很好。 我阅读了有关该主题Link 1Link 2的其他一些问题, graphviz.org上的文档也没有给我任何线索。

问题:我想在节点中换行。 我该怎么做?

以下代码有效,但并非总是如此。 完整代码:

digraph G {
    //general settings
    graph [fontname="Arial"];
    node [fontname="Arial"];
    edge [fontname="Arial"];

    //data of graph
    subgraph cluster_1
    {
        label = "Cluster 1";
        style=filled;
        color="#E0E0E0";
        margin=20;
        node [style=filled,color=white];
        "I'm text" -> "I want a donat.";
        "I want a donat." -> a1[label="Love food,\nlove it so much!"];
    }

    subgraph cluster_2
    {
        label = "Cluster 2";
        style=filled;
        color="#E0E0E0";
        margin=20;
        node [style=filled,color=white];
        Start -> a2[label="sit amet,\nconsetetur"];
        a2 ->
        {
            b2[label="Lorem Impsum\ndollar sit amet."];
        }
    }
}

结果:(绿色标记的工作正常,问题标记为红色。) 在此处输入图像描述

在我看来,您混淆了节点和边缘声明。

尝试换行

    "I'm text" -> "I want a donat.";
    "I want a donat." -> a1[label="Love food,\nlove it so much!"];

进入

    a1[label="Love food,\nlove it so much!"];
    "I'm text" -> "I want a donat.";
    "I want a donat." -> a1;

这实际上是将a1定义为具有 label 的节点。 然后可以使用节点 ID a1来声明节点之间的边。

这是另一个示例,所有节点都有显式节点声明,然后是使用节点标识符的边声明:

    imtext[label="I'm text"];
    donat[label="I want a donat."];
    a1[label="Love food,\nlove it so much!"];

    imtext -> donat -> a1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM