2016-04-11 35 views
0

kodumAlt çizgiler yatay olarak birbirinin üzerinde nokta ile nasıl konumlandırılır?

digraph g 
{ 
rankdir=RL 
node 
[shape = record, height=0.1]; 
subgraph 
1 
{ 
M_1; M_4; M_8; M_11; 
} 
subgraph 
2 
{ 
M_2; M_5; M_9; 
} 
subgraph 
3 
{ 
M_3; M_6; M_10; 
} 
subgraph 
5 
{ 
rank 
= 
same 
M_2; M_3; 
} 
subgraph 
8 
{ 
rank 
= 
same 
M_5; M_6; M_7; 
} 
subgraph 
11 
{ 
rank 
= 
same 
M_10; M_9; 
} 
subgraph 
12 
{ 
rank 
= 
same 
M_5; M_7; M_6; 
} 
M_1 -> M_4 [style=dotted, weight=100]; 
M_4 -> M_8 [style=dotted, weight=100]; 
M_8 -> M_11 [style=dotted, weight=100]; 
M_2 -> M_5 [style=dotted, weight=100]; 
M_5 -> M_9 [style=dotted, weight=100]; 
M_3 -> M_6 [style=dotted, weight=100]; 
M_6 -> M_10 [style=dotted, weight=100]; 
M_2 -> M_1; 
M_4 -> M_2; 
M_3 -> M_1; 
M_4 -> M_3; 
M_5 -> M_4; 
M_6 -> M_4; 
M_8 -> M_5; 
M_8 -> M_6; 
M_7 -> M_4; 
M_8 -> M_7; 
M_9 -> M_8; 
M_10 -> M_8; 
M_11 -> M_10; 
M_11 -> M_9; 
} 

şu çıktıyı verir: Artık

enter image description here

, sorum şu:

nasıl çizgileri $ M_2 ortalayabilmek, M_5, M_9 $ ve M_1, M_4, M_8, M_ {11} $ ve $ M_3, M_6, M_ {10} $ yatay olarak mı?

$ M_5, M_6 $ ve yana $ M_7 $ $ M_2 $ ve $ M_3 $ ve benzeri, bu sonuçta güzel bir resim, vermelidir aynı dereceye sahip, hem de zorlanmaktadır nerede düğümlerin kutuları çok simetrik görünecek şekilde konumlandırılmıştır.

Bunu nokta ile yapmanın bir yolu var mı?

Yardımın için teşekkürler! Aynı group'daki düğümler, düz bir çizgi üzerinde sırayla yerleştirilir.

+0

verir. Öncelikle kodunuz etkili bir şekilde okunamaz şekilde biçimlendirilir. İkincisi, DOT dilinde düğüm için 'weight' niteliği diye bir şey yoktur. Ne rank 'özniteliği için' lr 'değeri vardır. M_4 düğümü, 1, 6 ve 7 alt çizgilerinin öğesidir. Tek bir öğeye ve özniteliklere sahip 3 alt grafiğiniz vardır, ancak bunlardan ikisinde "rank = aynı". Lütfen sorunuzu düzenleyin. – stefan

+0

Yorumunuz için çok teşekkür ederim. Haklısın. Soruyu düzenledim. –

cevap

1

Tüm kenarlarınız, doğru dir özniteliği verilirse sıralamada güzel yardımcı olur.

digraph g 
{ 
    rankdir=RL 
    node [shape = record, height=0.1]; 
    subgraph { 
     node [group=2] 
     M_2; M_5; M_9; 
    } 
    subgraph { 
     node [group=1] 
     M_1; M_4; M_8; M_11; 
    } 
    subgraph { 
     node [group=3] 
     M_3; M_6; M_10; 
    } 
    M_7; 
    subgraph { 
     edge [style=dotted] 
     M_1 -> M_4; 
     M_4 -> M_8; 
     M_8 -> M_11; 
     M_2 -> M_5; 
     M_5 -> M_9; 
     M_3 -> M_6; 
     M_6 -> M_10; 
    } 
    subgraph { 
     edge [dir=back] 
     M_1 -> M_2; 
     M_2 -> M_4; 
     M_1 -> M_3; 
     M_3 -> M_4; 
     M_4 -> M_5; 
     M_4 -> M_6; 
     M_5 -> M_8; 
     M_6 -> M_8; 
     M_4 -> M_7; 
     M_7 -> M_8; 
     M_8 -> M_9; 
     M_8 -> M_10; 
     M_10 -> M_11; 
     M_9 -> M_11; 
    } 
} 

görünmez bir kukla düğüm ekleme ve biraz prettyPrinting yapabilirsiniz splineranksep, nodesep ayarlama ve By

enter image description here

verir. Alacağınız bizim için kolaylaştırır ve biraz özen ve çaba kendiniz uygulamak için denemek yardımcı olmak istiyorsanız

digraph g 
{ 
    rankdir=RL 
    ranksep=0.5 
    nodesep=0.5 
    splines=line 
    node [shape = record, height=0.1]; 
    Dummy [style=invisible]; 
    subgraph { 
     node [group=2] 
     M_2; M_5; M_9; 
    } 
    subgraph { 
     node [group=1] 
     M_1; M_4; M_8; M_11; 
    } 
    subgraph { 
     node [group=3] 
     M_3; M_6; M_10; 
    } 
    M_7; 
    subgraph { 
     edge [style=dotted] 
     M_1 -> M_4; 
     M_4 -> M_8; 
     M_8 -> M_11; 
     M_2 -> M_5; 
     M_5 -> M_9; 
     M_3 -> M_6; 
     M_6 -> M_10; 
    } 
    subgraph { 
     edge [dir=back] 
     M_1 -> M_2; 
     M_2 -> M_4; 
     M_1 -> M_3; 
     M_3 -> M_4; 
     M_4 -> M_5; 
     M_4 -> M_6; 
     M_5 -> M_8; 
     M_6 -> M_8; 
     M_4 -> M_7; 
     M_7 -> M_8; 
     M_8 -> M_9; 
     M_8 -> M_10; 
     M_10 -> M_11; 
     M_9 -> M_11; 
    } 
    subgraph { 
     edge [dir=none style=invisible] 
     M_4 -> Dummy; 
     Dummy -> M_8; 
    } 
} 

enter image description here

+0

Cevabınız ve bu zarif çözüm için çok teşekkür ederim! –

İlgili konular