Предотвратите перекрывающиеся записи, используя graphviz и neato
Я создаю точечный файл для представления компьютерного оборудования и физических подключений к сетевому коммутатору и дисплеям. У меня это выглядит нормально при обработке точечной программой, но я думаю, что я действительно хочу, чтобы оно обрабатывалось neato, чтобы создать более "свободную форму" изображения, когда оно начинает расти. Прямо сейчас, когда я запускаю свой большой файл с Neato, все перекрывается.
Я пытаюсь выяснить синтаксис, где определить overlap
приписывать. Ниже приведено подмножество моего файла точек.
graph g {
node [shape=record,height=.1];
PC8[label="{{<GigE1>GigE1|<GigE2>GigE2}|{<name>PC8}|{<dvi1>dvi1|<dvi2>dvi2|<dvi3>dvi3|<dvi4>dvi4}}"];
PC9[label="{{<GigE1>GigE1|<GigE2>GigE2}|{<name>PC9}|{<dvi1>dvi1|<dvi2>dvi2|<dvi3>dvi3|<dvi4>dvi4}}"];
C1[label = "{{<dvi1>dvi1}|{<name>C1}}"];
C2[label = "{{<dvi1>dvi1}|{<name>C2}}"];
C3[label = "{{<dvi1>dvi1}|{<name>C3}}"];
C4[label = "{{<dvi1>dvi1}|{<name>C4}}"];
D1[label = "{{<dvi1>dvi1}|{<name>D1}}"];
D2[label = "{{<dvi1>dvi1}|{<name>D2}}"];
"PC8":dvi1 -- "C1":dvi1;
"PC8":dvi2 -- "C2":dvi1;
"PC8":dvi3 -- "C3":dvi1;
"PC8":dvi4 -- "C4":dvi1;
"PC9":dvi1 -- "D1":dvi1;
"PC9":dvi2 -- "D2":dvi1;
}
1 ответ
Ну, как и в большинстве вопросов... вскоре после того, как я опубликовал, я понял ответ. Мне нужно было добавить
graph [overlap=false];
в верхней части файла.
Сделай это так:
graph g {
overlap = false;
node [shape=record,height=.1];
/* ... */
}
Установка overlap на false будет работать для neato, как сказано в ответе сообщества; однако, если график демонстрирует какую-либо регулярность или симметрию,
[overlap=false]
будет часто портить его, покачивая узлы, чтобы они не перекрывались.
Использовать
[overlap=false]
в крайнем случае. Все перекрытия узлов, которые выводятся из neato, можно рассматривать как возникающие, поскольку узлы слишком велики по отношению к краям. Вы можете устранить любые перекрытия, уменьшив узлы и сохранив симметрию на чертеже графа, установив
[overlap=scale]
. Цитата из руководства пользователя Neato:
Для повышения четкости иногда полезно устранить перекрывающиеся узлы или кромки. Один из способов устранить перекрытия узлов - просто увеличить макет (с точки зрения центральных точек узлов) настолько, насколько это необходимо. Это включается установкой атрибута графика overlap = scale. Это преобразование сохраняет общие геометрические взаимосвязи в макете, но в плохих случаях может потребовать больших масштабных коэффициентов.
Как говорится в документации
[overlap=false]
может привести к неприемлемо большим чертежам графиков, но если это не так, его результат обычно выглядит лучше, чем
[overlap=false]
.