102

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

4

2 回答 2

149

我想补充舒瓦洛夫的回答。penwidth确实是正确的命令。此外,在 shuvalov 的回答中penwidth既是节点又是边缘属性——也是正确的

我想做出的区分:

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

  • penwidth,当用作边缘属性时会影响边缘的线宽(默认值为“1”,指定 penwidth=2 将使边缘以粗体显示

  • 如果要更改边缘的线宽,则无需更改 由该边缘连接的两个节点的笔宽(如shuvalev的回答可能建议的那样)

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

  • 边的长度可以通过设置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.]
}

在此处输入图像描述

于 2010-03-02T14:55:07.840 回答
25

试试这个:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
于 2010-02-25T09:52:26.873 回答