Я не думаю, что ваш дизайн имеет недостатки, я думаю, что все в порядке.Точечный синтаксис является читаемым и, следовательно, обслуживаемым, и в результате автоматически генерируемый граф выглядит одинаково.
Конечно, вы можете добавить небольшие исправления, чтобы сделать этот конкретный граф лучше (или, по крайней мере, другим).Некоторые из них могут оказаться сложными для реализации, если, например, исходный код для вашего графика генерируется приложением.Вот некоторые идеи:
Чтобы макет был более симметричным , вы можете попытаться выровнять узлы Ожидание и Завершено а также Временное ожидание и Заблокировано , установив для их атрибута group
одинаковое значение (group=a
и group=b
).
Работало нормально для Ожидание и Teolated , но не так хорошо для Таймерное ожидание и Заблокировано - возможно, потому что между этими узлами есть два ребра.
Вы можете попытаться выровнять их, выбрав одно из ребер, которое связывает их, и установите его атрибут weight
ввысокое значение.
Кроме этого, я думаю, что график выглядит лучше во всех отношениях, потому что края более гладкие и имеют меньше ненужных кривых, особенно - но не только - между Runnable и Ожидание .
Эффект спагетти обусловлен сплайнами - возможно, это выглядитEss спагетти без сплайнов?Я попытался добавить splines=compound
или splines=ortho
(тот же результат):
График использует немного меньше вертикального пространства.Это не спагетти, но, на мой взгляд, не лучше ...
Вы также можете попробовать splines=compound
без атрибутов группы, это должно сделать график немного более компактным (ошибка не обязательно красивее),Или просто поиграйтесь с весом ребер, чтобы выровнять особенно неприятные ребра.
В некоторых случаях concentrate
может очистить графики с множеством параллельных ребер - в этом случае этоне очень помогает.