Graphviz,更改边的大小


90

如何更改点(graphviz)中的边的大小?我想使“边缘化”一些边缘。

Answers:


132

我想补充舒瓦洛夫的答案。penwidth确实是正确的命令。此外,在舒瓦洛夫的回答penwidth两个节点和边缘属性-也是正确的。

我想做出的区分:

  • penwidth用作节点属性时(例如,“ NodeA” [penwidth = 5])会影响该节点的边框线粗细

  • penwidth,作为边缘属性使用时影响的边缘的线宽(默认值是“1”时,指定penwidth = 2将使边缘出现在粗体类型

  • 如果要更改边缘的线宽,则无需更改 该边缘连接的两个节点的笔宽(如shuvalev的答案所示)

  • 对于有向图(边缘有方向),您可能还希望更改箭头箭头的大小/权重以及边缘权重,以使所有三个保持比例

  • 可以通过设置weight属性来更改边缘的长度,其他地方的默认值为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]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.