2012-11-12 18 views
9

Bir süredir bununla uğraşıyorum ve doğru bir cevap bulamıyorum. Ben grafiksel bileşik bileşiklerle çalışıyorum ve iki alt çizgiyi birbiriyle hizalamaya zorlamak için doğru ayar kombinasyonlarını bulamıyorum.Sabit boyutlu alt grafikler oluşturmak için nasıl grafviz alırım?

Kapalı ... sorunu göstermek için basit bir örnek

digraph g { 
    compound=true; 

    subgraph cluster_top { 
    graph [color=black, label="Top", rank=min]; 

    nodeA; nodeB; nodeC 
    cluster_top_DUMMY [shape=point style=invis] 
    } 

    subgraph cluster_service { 
    graph [color=black, label="Bottom", rank=min]; 
    node1; node2; node3; node4; node5; extra_long_node 
    cluster_bottom_DUMMY [shape=point style=invis] 
    } 
    cluster_top_DUMMY -> cluster_bottom_DUMMY [ style=invis ] 
} 

Bu en alt grafiği önemli ölçüde daha geniş bir alt alt grafiği ile çıktı üretir. Üst ve Alt hem hep aynı genişlikte olmasını sağlamak için

enter image description here

Ne istiyorum gerçekten olduğunu. Ayrıca, mevcut genişliğe sığacak çok fazla düğüm varsa, ek düğüm dizileri oluşturur.

cevap

2

Olası (kötü ama çalışan) bir çözüm görünmez düğümler kullanmak ve genişliği ayarlamak olacaktır. aşağıdaki düşünün:

digraph g { 
    compound=true; 

    subgraph cluster_top { 
     graph [color=black, label="Top", rank=min]; 

     nodeAI0 [style=invisible] 
     nodeAI1 [style=invisible] 
     nodeAI2 [style=invisible,fixedsize=true,width=1.65] 
     nodeA; nodeB; nodeC 
     cluster_top_DUMMY [shape=point style=invis] 
    } 

    subgraph cluster_service { 
     graph [color=black, label="Bottom", rank=min]; 
     node1; node2; node3; node4; node5; extra_long_node 
     cluster_bottom_DUMMY [shape=point style=invis] 
    } 
    cluster_top_DUMMY -> cluster_bottom_DUMMY [ style=invis ] 
} 

enter image description here

görünmez düğümler (NodeAI0-NodeAI2) yer kaplar. fixedsize = true, width = 1.65 sonuncuyu tam olarak 1,65 inç yapar. bileşik = gerçek bölümü sonra

node [fixedsize=true,width=0.75] 

:

başka, daha iyi bir çözüm de gibi bir ilave edilerek (doğru değer aramaya önlemek için), özellikle, ilgili uzun düğümü ayarlamak olacaktır.

İlgili konular