Мой вопрос по существу такой же, как этот, но данный ответ не работает для меня.
Вот пример рендеринга (источник) с помощью
compound=true;
overlap=scalexy;
splines=true;
layout=neato;
В ребрах есть ненужное перекрытие, но это не так уж плохо, основная проблема - это все потерянное пространство.
Я попытался установить sep=-0.7;
и вот что происходит.
Интервал намного лучше, но теперь есть несколько совпадений с узлами. Я экспериментировал с различными параметрами overlap
, и это единственное, что дает отдаленно приемлемые результаты.
Я попытался перейти на макет fdp и установить атрибут spring константы K
по всему миру, но я просто получил такие вещи:
Источник - все просто a--b--c
что-то типа, никаких причудливых трюков.
Я хочу, чтобы все ребра были как можно более сокращены (до минимума) при условии, что эта настройка не вносит никаких новых перекрытий, где sep
завершается полностью, Кажется, это не слишком сложно для механизма компоновки. Возможно ли это с пакетом graphviz? Я не против изменения программного обеспечения рендеринга, но я не хочу комментировать источник на основе node или per-edge.
Моим идеальным результатом было бы минимизировать отклонение длины ребра, считая один node за раз, т.е. каждый node имел бы края равной длины, кроме необходимых исключений, но это принятие желаемого за действительное. Приоритет состоит в том, чтобы уменьшить длину каждого ребра с ограничением, что это не может привести к перекрытию.
Я принимаю частичные решения, но они должны быть полностью автоматическими и с открытым исходным кодом.
Как я могу это сделать? Спасибо.