На самом деле, существуют специальные значения для подграфа rank атрибута, называемые max
и sink
, которые позволяют вам поместить узел в самый низкий ранг.
- Если выиспользуйте
rank=max
, тогда узел появится в уже существующем низшем ранге. - Если вы используете
rank=sink
, тогда у узла будет свой собственный ранг, который находится ниже самого низкого ранга графа, например:
digraph {
a -> b -> c
{
rank=max
bottom1 [label="rank=max"]
}
}
digraph {
a -> b -> c
{
rank=sink
bottom1 [label="rank=sink"]
}
}
Я не слишком знаком с PyGraphviz,но для достижения того же результата вы можете сделать что-то вроде этого:
G = pgv.AGraph(directed=True)
G.add_node('a')
G.add_node('b')
G.add_node('c')
G.add_node('bottom1', label="rank=sink")
G.add_edge('a','b')
G.add_edge('b','c')
G.add_subgraph(['bottom1'], name='s1', rank='sink')