GraphViz:给定一个.dot文件,如何计算节点统计信息?

GraphViz:给定一个.dot文件,如何计算节点统计信息?,graphviz,Graphviz,给定一个图的.dot表示,我希望能够编译关于每个节点的一些统计信息。统计数据可以是:#边数#级数#节点数 有没有可以让我这样做的软件包?是的,这是现成的graphviz 有关图形的一般统计信息可以通过将图形输入到-计数图形组件中来获得: gc(…)将连接的节点、边的数量打印到标准输出 输入文件中包含的组件或群集 如果您想生成有关图形的更具体统计信息,可以使用工具-图形模式扫描和处理语言 gvpr允许对图形执行自定义脚本。该脚本可能只是像在您的案例中那样收集自定义统计信息,甚至可能修改输入图 上面

给定一个图的.dot表示,我希望能够编译关于每个节点的一些统计信息。统计数据可以是:#边数#级数#节点数


有没有可以让我这样做的软件包?

是的,这是现成的graphviz

有关图形的一般统计信息可以通过将图形输入到-计数图形组件中来获得:

gc(…)将连接的节点、边的数量打印到标准输出 输入文件中包含的组件或群集

如果您想生成有关图形的更具体统计信息,可以使用工具-图形模式扫描和处理语言

gvpr
允许对图形执行自定义脚本。该脚本可能只是像在您的案例中那样收集自定义统计信息,甚至可能修改输入图

上面的链接文档非常完整,它比我在这里做的更好地解释了所有可用的属性和功能。下面只是一个简单的例子,让你开始


如果我们有下图
graph.gv

digraph graphinfotest {
    a -> {b; c; d} -> e;
    b -> c;
}
以下
gvpr
脚本(在文件
graphinfo.gvpr
中):

打电话给

gvpr -f graphinfo.gvpr graph.gv
将产生以下输出:

There are 5 nodes and 7 edges in graphinfotest
Node a - indegree 0, outdegree 3
Node b - indegree 1, outdegree 2
Node c - indegree 2, outdegree 1
Node d - indegree 1, outdegree 1
Node e - indegree 3, outdegree 0

非常感谢。这就是我要找的!
There are 5 nodes and 7 edges in graphinfotest
Node a - indegree 0, outdegree 3
Node b - indegree 1, outdegree 2
Node c - indegree 2, outdegree 1
Node d - indegree 1, outdegree 1
Node e - indegree 3, outdegree 0