graphviz без разрыва строки (.dot)

Я работаю с graphviz на LinuxArch. Если я печатаю свой .svg, я использую команду dot -Tsvg example.dot -o exampale.svg. Мой график напечатан, и это работает нормально. Я прочитал несколько других вопросов по этой теме Link 1, Ссылка 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.stack.imgur.com/CrqNI.jpg" alt="введите здесь описание изображения" />


person EngineerTrooper    schedule 06.03.2021    source источник


Ответы (1)


Мне кажется, вы путаете объявления узла и края.

Попробуйте изменить строки

    "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 определяется как узел с меткой. Затем идентификатор узла a1 можно использовать для объявления ребер между узлами.

Вот еще один пример с явными объявлениями узлов для всех узлов, а затем объявлениями ребер с использованием идентификаторов узлов:

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

    imtext -> donat -> a1;
person marapet    schedule 06.03.2021
comment
Спасибо, @marapet, что решил мою проблему. Я не ожидал, что допустил ошибку при объявлении. - person EngineerTrooper; 06.03.2021