Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GraphViz中表示节点权重?_Graphviz_Dot - Fatal编程技术网

如何在GraphViz中表示节点权重?

如何在GraphViz中表示节点权重?,graphviz,dot,Graphviz,Dot,在GraphViz中,边的宽度由weight属性表示。在某些图中,节点也可以具有权重,例如,在我的情况下,节点的权重表示聚合步骤后的内部边数 不幸的是,节点没有weight属性。节点确实具有width属性,但该属性仅用于显示目的(具有以英寸为单位的固定语义) 鉴于上述限制,在GraphViz/DOT语言中表示节点权重的最佳方法是什么?向节点添加权重属性。然后,您可以基于权重使用gvpr处理图形。作为一个例子,考虑下面的图表。< /P> digraph weighted { a [weig

在GraphViz中,边的宽度由
weight
属性表示。在某些图中,节点也可以具有权重,例如,在我的情况下,节点的权重表示聚合步骤后的内部边数

不幸的是,节点没有
weight
属性。节点确实具有
width
属性,但该属性仅用于显示目的(具有以英寸为单位的固定语义)


鉴于上述限制,在GraphViz/DOT语言中表示节点权重的最佳方法是什么?

向节点添加
权重属性。然后,您可以基于
权重
使用gvpr处理图形。作为一个例子,考虑下面的图表。< /P>
digraph weighted {
    a [weight = 5];
    b [weight = 2];
    c [weight = 12];
    d [weight = 7];

    a -> b -> c -> d;
}
您可以通过使用gvpr和脚本对其进行处理来为其节点着色,如下所示

N [weight >= 5 ] {color="red"}
N [weight < 5] { color = "blue"}
将生成以下输出


您可以向节点添加任意属性,包括名为
weight
的属性。但是,我假设您还希望
权重
改变图形可视化的方式。那会是什么?@DiomidisSpinellis我只想表示图形本身,而不是它的显示方式(尽管圆点通常用于这两个目的)。我认为事物的本质应该与它的表现方式严格分离。我完全同意分离。根据您的澄清,请参阅我的答案。
gvpr -c -f t.gvpr foo.dot | dot -Tpng -ocolored.png