Язык точечных графиков - как сделать двунаправленные ребра? - PullRequest
64 голосов
/ 12 августа 2010

Вот очень упрощенный пример моего точечного графика:

strict digraph graphName {
A->B
B->A
}

Это создает alt text

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

strict digraph graphName {
  edge [dir="both"]
A->B
B->A
}

Но это выглядит очень уродливо, и не все мои ребра должны быть двуглавыми.

alt text

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

strict digraph graphName {
A->B [dir="both"]
}

alt text

Какие-нибудь лучшие решения?

Ответы [ 2 ]

75 голосов
/ 19 июля 2013

Вы должны просто использовать:

A -> B [dir = "both"]

53 голосов
/ 12 августа 2010

Как насчет 'концентрат = истина'?:

strict digraph graphName {
concentrate=true
A->B
B->A
}

with concentrate=true

Из документации :

Еслиправда, используйте краевые концентраторы.Это объединяет несколько ребер в одно ребро и заставляет частично параллельные ребра делить часть своих путей.Последняя функция еще не доступна за пределами точки.

...