Предотвратите перекрывающиеся записи, используя 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].

Другие вопросы по тегам