DOT: как подключиться к узлам, когда один узел находится в подграфе - PullRequest
1 голос
/ 28 мая 2020

У меня есть следующий график:

digraph D {

node [
      fontname = "Arial"
      fontsize = 11
      shape = "record"
      ]

A [ label = "my_A" ]
B [ label = "my_B" ]

subgraph cluster_mg {
        label = "Main Group";
        penwidth = 1
        color = "black"

        subgraph cluster_subgroup1 {
                color = "black";
                style = dashed;
                label = "Subgroup 1"
                A
        }

        subgraph cluster_subgroup2 {
                color = "white"
                penwidth = 0;
                label = "Subgroup 2"
                B
        }
}

#A -> B
#{ rank=same A B }

}

С закомментированными последними двумя строками получается такая цифра:

enter image description here

Я хочу добавить стрелку от my_A к my_B. Когда я делаю это (раскомментировав первую закомментированную строку) my_A и my_B размещаются вертикально, а не горизонтально. Когда я устанавливаю их ранг одинаковым, я теряю пунктирную линию. Как я могу построить ту же фигуру, что и здесь, но с линией от my_A до my_B?

Кроме того, как я могу поместить my_A слева и my_B справа?

1 Ответ

0 голосов
/ 28 мая 2020

Добавление

 rankdir = LR;

к части graph[] сделало то, что мне нужно:

digraph D {

graph [ rankdir = LR ]

node [
      fontname = "Arial"
      fontsize = 11
      shape = "record"
      ]

A [ label = "my_A" ]
B [ label = "my_B" ]

subgraph cluster_mg {
        label = "Main Group";
        penwidth = 1
        color = "black"

        subgraph cluster_subgroup1 {
                color = "black";
                style = dashed;
                label = "Subgroup 1"
                A
        }

        subgraph cluster_subgroup2 {
                color = "white"
                penwidth = 0;
                label = "Subgroup 2"
                B
        }
}

A -> B

}

enter image description here

...