gpt4 book ai didi

graphviz - 导入 .dot 文件作为子图

转载 作者:行者123 更新时间:2023-12-03 22:32:51 25 4
gpt4 key购买 nike

是否有 - 通过语言功能或通过预处理器 - 将外部 .dot 文件作为子图包含到另一个文件中的可能性?

我正在处理一个相对较大的图表,虽然手动维护,而不是生成。

能够定义一些会很方便
subgraph01.dot :

digraph subgraph01 {
/* lot of nodes and edges */
}
subgraph02.dot :
digraph subgraph02 {
/* lot of nodes and edges */
}

然后做类似 graph.dot 的事情:
digraph BigGraph {
import subgraph01;
import subgraph02;
A -> subgraph01.Node1
A -> subgraph02.Node1
subgraph01.Node10 -> subgraph02.Node99
/* etc. */
}

有办法吗?

最佳答案

我立即想到了两个选择。一种是使用宏处理器,例如m4 .给定 BigGraph.m4 :

digraph BigGraph {
define(`digraph',`subgraph')
include(`subgraph01.dot')
include(`subgraph02.dot')
A -> subgraph01.Node1
A -> subgraph02.Node1
subgraph.Node10 -> subgraph.Node99
/* etc. */
}

... 运行:
$ m4 BigGraph.m4 

...产生:
digraph BigGraph {
subgraph subgraph01 {
/* lot of nodes and edges */
}


subgraph subgraph02 {
/* lot of nodes and edges */
}


A -> subgraph01.Node1
A -> subgraph02.Node1
subgraph.Node10 -> subgraph.Node99
/* etc. */
}

另一种可能允许更复杂方法的选项是使用
gvpr来自 GraphViz。我试图用 gvpr 创建一个例子来做到这一点,但是我没有成功,所以我建议只在需要图形感知方法时才尝试它,而不是使用 m4 的简单方法。 .

关于graphviz - 导入 .dot 文件作为子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26239194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com