Я хочу создать простой график, используя graphviz, который имеет
- два узла (b, c) одного ранга и еще один узел (a)
- каждый узел b и c имеет однонаправленное ребро к узлу a
- узлы b и c имеют двунаправленное ребро друг к другу, оба порта которого находятся на левой стороне (w)
digraph {
graph [
charset = "UTF-8";
rankdir = LR,
];
b -> a;
c -> a;
b:w -> c:w;
{rank = same; b; c}
}
Но я получил этот график, в котором двунаправленное ребро стало однонаправленным.
Я новичок в точечном языке, и я не знаю, почему это произошло. Может кто-нибудь мне помочь? Спасибо!
Обновление
Мне очень жаль, что мой первый вопрос был настолько глупым, что я забыл включить [dir = both]
... Но на самом деле это была не настоящая проблема.
На самом деле были этикетки со всеми гранями. Итак, код был
digraph {
graph [
charset = "UTF-8";
rankdir = LR
];
b -> a [label = 1];
c -> a [label = 2];
b:w -> c:w [dir = both, label = 3];
{rank = same; b; c}
}
И этот код создает следующий граф, в котором двунаправленное ребро меняется на однонаправленное.
Но если я удалю все метки с ребер ([label = ...]
), ребро станет двунаправленный. Край также становится двунаправленным, если я удаляю оба аргумента порта (:w
).
Я ценю, если кто-нибудь может понять, что здесь происходит. Еще раз спасибо заранее.
[dir=both]
к краю bc. - person albert   schedule 23.02.2021;
) послеLR
и добавляюconstraint=false
для края bc. мне кажется все нормально (версии 2.38 и 2.40). - person albert   schedule 23.02.2021