Вы почти все сделали правильно. Просто удалите строку {rank=same M N O P Q R}
.
Вы правы, rankdir работает только для всего графа, отдельно для подграфов не будет работать. Но вы можете контролировать положение узлов, используя:
- ранг
=same
атрибут подграфа
, что вынуждает все узлы, упомянутые в подграфе, находиться на одном уровне.
, который позволяет вам соединить два узла, но не влияет на их положение этим соединением.