Основной вопрос заключается в том, как управлять вертикальным и горизонтальным расположением элементов на диаграммах Graphviz.
Рассмотрим этот отрывок диаграммы (созданной в редакторе wysiwig).
Я пытался воспроизвести его в Graphviz, чтобы выяснить, подходит ли он для моих целей.
digraph G {
compound=true;
node [shape=box];
edge [dir=none];
subgraph cluster_tmk_web6 {
nginx [label="nginx-frontend TCP 0.0.0.0:80"];
subgraph clusteradminapp {
unicorn [label="unicorn_rails TCP 127.0.0.1:8080"];
subgraph clusterROR {
label="ROR v.2.1";
brida [label="brida_face_client"];
}
label="Admin App";
}
memcached [label="memcached"];
sphinx;
mongodb;
subgraph cluster_errbit {
unicorn2;
ror3;
}
label="tmk-web6.service.home";
}
nginx -> unicorn;
memcached -> brida [lhead=clusterROR];
}
И результат выглядит как
Я опустил некоторые стрелки, но для меня решающее значение имеет расположение.Как мне переместить «memcached» и «sphinx» в конец кластера?Как сдвинуть «mongodb» вправо?И, наконец, диаграмма будет состоять из 6-10 кластеров такого размера.Как мне управлять макетом, размещая одни кластеры в ряд, а другие - сверху и снизу?Я думаю, что я должен использовать атрибут "rank" здесь, но не уверен, как.Пожалуйста, помогите.