2016-01-26 4 views
0

Я пытаюсь создать графику архитектуры, но независимо от того, что я пробовал, dot всегда, кажется, хочет подключить некоторые из узлов с самым длинным возможным путем.Горизонтально размещающие кластеры с узлом вне

Вот набросок того, как я хочу, чтобы более или менее вид:

Masterly sketch

Вот как это выглядит на самом деле:

Not so masterly graph

А вот код в вопросе:

digraph ngsys { 
    graph [dpi = 300]; 
    rankdir="LR"; 
    subgraph cluster_client { 
     style=filled; 
     color=lightgrey; 
     node [style=filled, color=white]; 
     ngcontroller -> ngmodel; 
     ngmodel -> ngview; 
     label="Client"; 
    } 

    ngview -> user [style=dashed]; 
    user -> ngcontroller [style=dashed]; 

    subgraph cluster_server { 
     style=filled; 
     color=lightgrey; 
     node [style=filled, color=white]; 
     apicontroller -> apimodel; 
     label="Server"; 
    } 
    ngcontroller -> apicontroller [label="REST", dir=both, style=dashed]; 

    ngmodel [label="NG-Model" shape=box]; 
    user [label="User"]; 
    ngview [label="NG-View", shape=box]; 
    ngcontroller [label="NG-Controler", shape=box]; 
    apicontroller [label="API-Controller", shape=box]; 
    apimodel [label="API-Model", shape=box]; 

} 

Является ли Что я могу сделать, чтобы сделать вывод более похожим на эскиз?

ответ

1

небольшое изменение фиксирует порядок:

ngview -> ngmodel [dir=back]; 
    ngmodel -> ngcontroller [dir=back]; 

еще одно маленькое изменение улучшает внешний вид:

nodesep=1; 
    ... 
    ngview:s -> user [style=dashed]; 
    user -> ngcontroller:s [style=dashed]; 
+0

что делает ': s' часть делать? –

+0

[portPos] (http://www.graphviz.org/doc/info/attrs.html#k:portPos) на юг – stefan