В Graphviz: я могу иметь идентификаторы узлов, которые являются уникальными только в кластерах? - PullRequest
5 голосов
/ 06 февраля 2012

Я понимаю, что идентификаторы узлов должны быть уникальными в файле graphviz (здесь: точка).

Однако мне бы хотелось, чтобы они были уникальными только в пределах их кластера, то естьЯ хотел бы, чтобы следующий файл производил 4 узла:

digraph G {


  subgraph cluster_clust_one {
     node [shape=record];

     a [label = "A / 1"];
     b [label = "B / 1"];

     a -> b;
  }


  subgraph cluster_clust_two {
     node [shape=record];

     a [label = "A / 2"];
     b [label = "B / 2"];

     a -> b;
  }

}

Однако это не так, потому что идентификаторы узлов не являются уникальными.Очевидно, что я могу решить эту проблему, назначив уникальные идентификаторы, например, изменив cluster_clust_two на

  subgraph cluster_clust_two {
     node [shape=record];

     c [label = "A / 2"];
     d [label = "B / 2"];

     c -> d;
  }

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

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

Вы можете добавить имя узла к имени кластера, например cluster_clust_two__a. Это все равно будет означать изменение в генерирующем скрипте.

2 голосов
/ 06 февраля 2012

Насколько я знаю, нет возможности иметь отдельные узлы с одинаковыми идентификаторами.Dgw =)

предложил разумный обходной путь
...