Graphviz, изменение размера края

92

Как изменить размер ребра в точке (графвиз)? Я хотел бы сделать некоторые края "жирными".

название
источник

Ответы:

134

Хотел дополнить ответ Шувалова. penwidth - действительно правильная команда. Кроме того, в ответе Шувалова ширина пера - это свойство как узла, так и края - тоже правильно.

Я хотел провести различие:

  • penwidth , когда используется как свойство узла (например, "NodeA" [penwidth = 5]), влияет на вес линии границы для этого узла.

  • Penwidth , когда используется как свойство edge, влияет на толщину линии края (значение по умолчанию - «1», при указании penwidth = 2 край будет выделен жирным шрифтом.

  • если вы хотите изменить вес линии края, вам не нужно изменять ширину пера для двух узлов, соединенных этим краем (как может предложить ответ Шувалева)

  • для ориентированного графа (края имеют направление) вы также можете изменить размер / вес наконечника стрелки и хвоста стрелы вместе с весом края , чтобы все три оставались пропорциональными

  • длина ребра может быть изменена путем установки веса свойства, как и везде, значение по умолчанию равно 1,0; увеличение этого значения увеличивает стоимость растяжения этого края во время рендеринга (т. е. алгоритм рисования применяет более высокий штраф к решениям, в которых этот край длиннее); обратите внимание, что край от 1 до 4 короче, чем край от 1 до 2.

Следующий код должен иллюстрировать все это. Визуализированный график показан под кодом.

digraph {
    /* declare the node & style them */
    "Node 1" [shape=diamond, penwidth=3, style=filled, fillcolor="#FCD975"];
    "Node 2" [style=filled,fillcolor="#9ACEEB" ];
    "Node 3" [shape=diamond, style=filled, fillcolor="#FCD975" ];
    "Node 4" [style=filled, fillcolor="#9ACEEB" ]

    /* declare the edges & style them */
    "Node 1" -> "Node 2" [dir=none, weight=1, penwidth=3] ;
    "Node 1" -> "Node 3" [dir=none, color="#9ACEEB"] ;
    "Node 1" -> "Node 4" [arrowsize=.5, weight=2.]
}

введите описание изображения здесь

дуг
источник
Почему-то weightнедвижимость для меня ничего не меняет. Остальное очень полезно, хотя… спасибо!
Clozach
Это было очень полезно, особенно с изображением - помогло мне понять отношения здесь. Синтаксис graphviz немного своеобразен, поэтому такие красивые изображения очень помогли. Единственная часть, если бы я изменил приведенное выше, было бы добавить немного больше пояснений в отношении ширины пера, потому что сейчас все строки жирные (я изменил это, благодаря вышесказанному), но граница вокруг отдельные узлы не толще, что я изначально хотел сделать. В конце концов, я могу решить эту проблему, но если я забуду опубликовать решение здесь, я просто добавлю его. :)
shevy
20

попробуй это:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
Шувалов
источник