有没有 - 通过语言功能或通过预先准备 - 可以将外部.dot文件作为子图包含到另一个中?
我正在处理一个相对较大的图表,虽然手动维护,但没有生成.
能够定义一些是很方便的
subgraph01.dot:
digraph subgraph01 {
/* lot of nodes and edges */
}
Run Code Online (Sandbox Code Playgroud)
subgraph02.dot:
digraph subgraph02 {
/* lot of nodes and edges */
}
Run Code Online (Sandbox Code Playgroud)
然后做一些像graph.dot:
digraph BigGraph {
import subgraph01;
import subgraph02;
A -> subgraph01.Node1
A -> subgraph02.Node1
subgraph01.Node10 -> subgraph02.Node99
/* etc. */
}
Run Code Online (Sandbox Code Playgroud)
有办法吗?
Sim*_*mon 11
我立即想到两个选择.一种是使用宏处理器,例如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. */
}
Run Code Online (Sandbox Code Playgroud)
......跑步:
$ m4 BigGraph.m4
Run Code Online (Sandbox Code Playgroud)
...产生:
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. */
}
Run Code Online (Sandbox Code Playgroud)
另一个可能允许更复杂方法的选择是使用
GraphViz中的gvpr.我尝试创建一个示例来执行此操作gvpr,但是我没有成功,因此我建议只在需要图形感知方法而不是使用简单方法时尝试它m4.