Я хочу, чтобы генерировать следующий график в Graphviz:Набивки между кластером границами и узлами при использовании Graphviz и Neato
По причинам here, это:
digraph
{
layout=dot;
rankdir="LR";
overlap = true;
node[shape=record, height="0.4", width="0.4"];
edge[dir=none];
A; B; C; D; E; F; G; H; I;
A -> B -> C;
D -> E -> F;
G -> H -> I;
edge[constraint=false];
A -> D -> G;
subgraph clusterX
{
label="Cluster 1";
A; B;
}
subgraph clusterY
{
label="Cluster 2";
E; F; H; I;
}
}
производит это:
После some careful tweaking of the order of appearance of nodes:
F; E; I; H; D; G; A; B; C;
я получить правильный результат.
Хотя это работает, я хотел бы более непосредственный контроль над размещением узлов, поэтому я попытался переключиться на Neato, так что я могу заставить местоположение узла с помощью Pos:
graph g
{
layout=neato;
node[shape=record, height="0.4", width="0.4"];
edge[dir=none];
A [pos="1,3!"];
B [pos="2,3!"];
C [pos="3,3!"];
D [pos="1,2!"];
E [pos="2,2!"];
F [pos="3,2!"];
G [pos="1,1!"];
H [pos="2,1!"];
I [pos="3,1!"];
A -- B -- C;
D -- E -- F;
G -- H -- I;
A -- D -- G;
subgraph clusterX
{
label="Cluster 1";
A;
B;
}
subgraph clusterY
{
label="Cluster 2";
E; F; H; I;
}
}
Это дает следующий результат:
Как я могу получить Neato добавить отступы между кластерными границами и узлами в кластере (таким же образом, что точка делает)?
Спасибо @marapet. Похоже, мне придется изменить свой подход здесь. Я ценю информацию и ссылки, которые вы предоставили. Я обновил вопрос, чтобы удалить направленные ребра. –