График подвиза не визуализируется - PullRequest
54 голосов
/ 28 сентября 2011

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

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

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

1 Ответ

111 голосов
/ 28 сентября 2011

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

subgraph clusterstep1 {

и

subgraph clusterstep2 {

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

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

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

...