Подтвердить что ты не робот

Подграф Graphviz не визуализируется

Я пытаюсь создать граф с двумя подграфами в точке. Код выглядит следующим образом:

digraph G {
        subgraph step1 {
                style=filled;
                node [label="Compiler"] step1_Compiler;
                node [label="Maschine"] step1_Maschine;
                color=lightgrey;
        }

        subgraph step2 {
                style=filled;
                color=lightgrey;
                node [label="Interpretierer"] step2_Interpretierer;
                node [label="Maschine"] step2_Maschine;
                label="Virtuelle Maschine";
        }

        "Programm (Java)" -> step1_Compiler;
        step1_Compiler -> step1_Maschine;
        step1_Maschine -> "Bytecode";
        "Bytecode" -> step2_Interpretierer;
        step2_Interpretierer -> step2_Maschine;
        step2_Maschine -> "Ergebnis";
}

Результат, который я получаю, выглядит следующим образом:

Result of above code

Я ожидал увидеть прямоугольник вокруг обоих подграфов. Что мне здесь не хватает?

4b9b3361

Ответ 1

Вам нужно будет префикс имени ваших подграфов с помощью кластера:

subgraph clusterstep1 {

и

subgraph clusterstep2 {

чтобы получить стиль и метку.

Из графическая документация, раздел "Подграфы и кластеры" :

Третья роль для подграфов напрямую связана с тем, как график будет определенных некоторыми механизмами компоновки. Если начинается название подграфа с кластером, Graphviz отмечает подграф как специальный кластер подграф. Если поддерживается, механизм компоновки сделает макет так, чтобы узлы, принадлежащие кластеру, объединяются вместе со всем чертежа кластера, содержащегося в ограничительном прямоугольнике. Заметка что для хорошего и плохого кластерные подграфы не являются частью DOT язык, но исключительно синтаксическое соглашение, которым придерживаются некоторые из механизмы компоновки.