Какая языковая конструкция {rank = same; A B C} в graphviz

В graphviz / dot я могу разместить узлы на одном уровне с {rank=same; ND1 ND2 ND3}.

Глядя на точечный язык, я прихожу к выводу, что {...} является частью подграфа заявление.

Если это так, я не понимаю, зачем мне нужен подграф для ранжирования узлов. Я предполагаю, что это потому, что у меня нет правильного мысленного представления о том, что составляет подграф в graphviz.

Итак, мой вопрос: что такое подграф в graphviz и почему я должен запускать подграф для ранжирования узлов, которые не имеют ничего общего с этим подграфом.


person René Nyffenegger    schedule 13.07.2017    source источник


Ответы (1)


Из документации, которую вы цитируете:

Во второй роли подграф может предоставлять контекст для установки атрибутов. Например, подграф может указывать, что синий цвет является цветом по умолчанию для всех определенных в нем узлов. В контексте рисования графиков более интересным примером является:

subgraph { 
rank = same; A; B; C; 
} 

Этот (анонимный) подграф определяет, что узлы A, B и C должны быть размещены в одном ранге, если они нарисованы с использованием точки.

Такое использование подграфов для установки ранга узлов - это именно тот контекст, на который ссылается документация (в данном случае явно). синтаксис поддерживает особое контекстное значение в этом случае.

person TomServo    schedule 17.07.2017
comment
Спасибо. Я прочитал процитированное вами предложение, но, видимо, не совсем его переварил. - person René Nyffenegger; 17.07.2017