2017-03-04 4 views
0

Ich habe eine Grafik mit 3 Teilgraphen, die nebeneinander angeordnet sind, ich möchte, dass sie übereinander gestapelt werden (ich will nicht die Richtung des Inhalts der Untergraph zu ändern).Force GraphViz zum Untereinanderordnen von Untergraphen

Das einfache Beispiel:

digraph G { 
 
rankdir=TB; 
 
    subgraph cluster_lkg{ 
 
     subgraph cluster_sentence_1{ 
 
      "A1","A2","A3" 
 
      "A1" -> "A2" 
 
      "A1" -> "A3" 
 
     } 
 
     subgraph cluster_concepts_1{ 
 
      "B1","B2","B3" 
 
      "B1" -> "B2" 
 
      "B1" -> "B3" 
 
     } 
 
    } 
 
    subgraph cluster_fkgs{ 
 
      "C1","C2","C3" 
 
      "C1" -> "C2" 
 
      "C1" -> "C3" 
 
    } 
 

 
}

Antwort

0

Sie müssen die Cluster verbinden (oder, genauer gesagt, die Knoten innerhalb des Cluster), um Ihre rankdir = TB effektiver zu machen. Sie können mit unsichtbaren Kanten so tun:

digraph G 
{ 
    rankdir=TB;  
    subgraph cluster_lkg 
    { 
     subgraph cluster_sentence_1 
     { 
      "A1","A2","A3" 
      "A1" -> "A2" 
      "A1" -> "A3" 
     } 
     subgraph cluster_concepts_1{ 
      "B1","B2","B3" 
      "B1" -> "B2" 
      "B1" -> "B3" 
     } 
     //A1 -> B1; 
    } 
    subgraph cluster_fkgs 
    { 
      "C1","C2","C3" 
      "C1" -> "C2" 
      "C1" -> "C3" 
    } 
    edge[ style = invis ]; 
    { A2 A3 } -> B1; 
    { B2 B3 } -> C1; 
} 

die

enter image description here

Der Knoten ergibt C1 falsch ausgerichtet ist - ich denke, das aus der Verschachtelung der Cluster kommt, aber ich habe kein Rezept dagegen. Hoffe es hilft trotzdem.

Verwandte Themen