graphviz无断线(.dot)

graphviz无断线(.dot),graph,newline,graphviz,dot,Graph,Newline,Graphviz,Dot,我和graphviz在LinuxArch合作。如果我打印.svg,我会使用命令dot-Tsvg example.dot-o example.svg。我的图表打印出来了,效果很好。我读了一些关于这个主题的其他问题,关于的文档也没有给我任何线索 问题:我想在节点中换行。我怎么能做到 下面的代码正在工作,但并不总是如此。完整代码: digraph G { //general settings graph [fontname="Arial"]; node [f

我和graphviz在LinuxArch合作。如果我打印.svg,我会使用命令
dot-Tsvg example.dot-o example.svg
。我的图表打印出来了,效果很好。我读了一些关于这个主题的其他问题,关于的文档也没有给我任何线索

问题:我想在节点中换行。我怎么能做到

下面的代码正在工作,但并不总是如此。完整代码:

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
定义为带有标签的节点。然后可以使用节点id
a1
声明节点之间的边

下面是另一个示例,其中包含所有节点的显式节点声明,然后是使用节点标识符的边缘声明:

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

    imtext -> donat -> a1;

谢谢你,@marapet解决了我的问题。我没想到我在声明时犯了一个“错误”。
    imtext[label="I'm text"];
    donat[label="I want a donat."];
    a1[label="Love food,\nlove it so much!"];

    imtext -> donat -> a1;