【问题标题】:Importing .dot file as subgraph将 .dot 文件导入为子图
【发布时间】:2014-12-02 01:38:17
【问题描述】:

是否有可能——无论是通过语言功能还是通过前身——将外部 .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. */
}

有办法吗?

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    我立刻想到了两个选择。一种是使用宏处理器,例如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 的简单方法时尝试它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 2016-06-26
      • 2015-12-24
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 2015-10-05
      相关资源
      最近更新 更多