2014-10-07 4 views
10

के रूप में .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. */ 
} 

क्या कोई रास्ता है?

उत्तर

10

दो विकल्प तुरंत मेरे पास होते हैं। एक मैक्रो प्रोसेसर का उपयोग करना होगा, उदा। m4BigGraph.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. */ 
} 

एक अन्य विकल्प है कि अनुमति दे सकते हैं एक और अधिक परिष्कृत दृष्टिकोण Graphviz से gvpr उपयोग करने के लिए है । मैंने gvpr के साथ ऐसा करने के लिए एक उदाहरण बनाने की कोशिश की, हालांकि मैं असफल रहा, इसलिए मैं सुझाव देता हूं कि m4 का उपयोग करके सरल दृष्टिकोण के बजाय ग्राफ-जागरूक दृष्टिकोण की आवश्यकता हो।

संबंधित मुद्दे