2015-11-25 4 views
0

Я использую graphviz (dot) для генерации развернутого графика времени для использования в моей магистерской диссертации. Тем не менее, мой рисунок приводит к следующему графику: Resulting GraphКак обеспечить, чтобы подграфы были на одной горизонтальной линии в Graphviz

Как вы можете видеть, третья строка немного сдвинута вправо. Мне нужны все линии в одной и той же горизонтальной линии. Также я хочу, чтобы x.th узел в каждой строке оставался на той же горизонтальной линии других x.th узлов строк. Изменение веса края мне не помогло.

Я пока не нашел ничего, что связано с этой проблемой.

Что я хочу достичь, это что-то вроде этого: Example Graph

Вот мой код:

digraph G { 
1[label="1"] 
2[label="1"] 
3[label="1"] 
4[label="1"] 
5[label="1"] 
6[label="1"] 
7[label="2"] 
8[label="2"] 
9[label="2"] 
10[label="2"] 
11[label="2"] 
12[label="2"] 
13[label="3"] 
14[label="3"] 
15[label="3"] 
16[label="3"] 
17[label="3"] 
18[label="3"] 
19[label="4"] 
20[label="4"] 
21[label="4"] 
22[label="4"] 
23[label="4"] 
24[label="4"] 

rankdir="LR"; 
node[width=0.15, height=0.15, shape=point]; 
edge[weight=500, label="1"]; 

1 -> 2 -> 3 -> 4 -> 5 -> 6 ; 
7 -> 8 -> 9 -> 10 -> 11 -> 12 ; 
13 -> 14 -> 15 -> 16 -> 17 -> 18 ; 
19 -> 20 -> 21 -> 22 -> 23 -> 24 ; 

edge[weight=3]; 
1 -> 9; 
2 -> 9; 
3 -> 11; 

13 -> 22; 
14 -> 22; 
15 -> 24; 

edge[weight=1]; 
1 -> 14; 
2 -> 15; 
3 -> 17; 

7 -> 21; 
8 -> 23; 
9 -> 22; 
} 

Любая помощь будет оценена.

ответ

1

Вместо использования weight попробуйте использовать атрибут constraint=false для всех ребер, выходящих из одной «линии» к другому.

Установка constraint к false делает Graphviz к не рассматривать эти края, когда раскладывать узлы графа.

См. Также very similar question & answer

+0

Спасибо, что решил мою проблему выравнивания. Но теперь строка 2 и строка 3 поменялись местами. Я хочу их в порядке 1,2,3,4 сверху донизу. Есть ли способ, которым я могу это сделать? – Makif

+0

Некоторые [невидимые грани] (http://stackoverflow.com/a/12578764/63733) обычно помогают (некоторые [другие полезные методы здесь] (http://stackoverflow.com/a/25776916/63733)). – marapet