2013-08-06 12 views
7

Używam graphviz do rysowania ukierunkowanych wykresów. Teraz, mimo że jestem w stanie poprawnie wygenerować wykres, wykres jest zaprojektowany poziomo, co nie jest zgodne z moimi wymaganiami. Tak, jak można narysować graf skierowany pionowo aby działać skutecznie, usuwając niektóre obce średników Proszę mi pomóc z tymgraphviz rysunek wykres pionowo

+3

Jakie jest ustawienie [rankdir] (http://www.graphviz.org/doc/info/attrs.html#d:rankdir)? –

+0

@Anders Lindahl Nie posiadałem właściwości rankdir. proszę, zasugeruj mi, jaką modyfikację muszę wykonać. – user2060673

+2

Pokaż przykładowy opis wykresu i polecenie, którego używasz do renderowania. –

Odpowiedz

10

Biorąc pod uwagę następujący scenariusz, który ja pochodzących z uwagi na pytanie i edycja:

digraph G { 
    graph [ bgcolor=lightgray, resolution=128, fontname=Arial, fontcolor=blue, fontsize=10 ]; 
    node [ fontname=Arial, fontcolor=blue, fontsize=10]; 
    edge [ fontname=Helvetica, fontcolor=red, fontsize=10 ]; 
    "arunachaltourism.com/" -> "webcomindia.biz/profile.php"; 
    "arunachaltourism.com/#" -> "arunachaltourism.com/"; 
    "arunachaltourism.com/aalo.php" -> "arunachaltourism.com/"; 
} 

Zadzwoniłem do skryptu x.dot. Teraz działa:

dot x.dot -Tjpg -o x.jpg 

... produkuje:

enter image description here

... bo domyślnie jest rankdir=BT. Wkładanie:

rankdir=LR 

... jak w drugim wierszu skryptu i uruchomienie skryptu przez dot znowu daje:

enter image description here

Tak więc, nie jest dla mnie jasne, dlaczego wykres może zostały narysowane poziomo za pierwszym razem, ale będziesz mógł zobaczyć, jak użycie rankdir może spowodować, że wykres wyjdzie poziomo lub pionowo.

+0

To jest dokładnie to, czego szukałem – curiosa

7

(! Stare pytanie, ale dlaczego nie)

Można również uruchomić:

dot -Grankdir=LR -Tpng myfile.dot -ogeneratedpng.png 
0

Można użyć rankdir jako właściwość w pliku DOT:

digraph G { 
    rankdir=LR; //left to right 
    //B bottom T top L left R right 
     start->a1; 
     a1 -> b3; 
     b2 -> a3; 
     a3 -> a0; 
     a3 -> end; 
     b3 -> end; 
    } 

The skrypt generuje następujący wykres od lewej do prawej:

Możesz wypróbować skrypt online enter image description here