ti-enxame.com

Desenhando uma borda ao redor de um conjunto de vértices no Graphviz

Estou tentando desenhar um gráfico com o Graphviz.

Desejo desenhar uma linha pontilhada em torno de um conjunto de vértices, simbolizando que eles fazem parte de uma entidade maior.

Digamos, por exemplo, se eu tiver três vértices como ovos, frango e presunto, devo desenhar uma linha pontilhada em torno dos três e rotular essa borda como alimento.

51
user916315

É possível agrupar nós no graphviz colocando-os em um cluster. Um cluster é um tipo especial de subgráfico que certos mecanismos de layout (ponto, fdp, ...) suportam e, se suportado, os nós em um cluster serão desenhados juntos.

A partir da documentação:

Se o nome do subgráfico começar com cluster, o Graphviz anotará o subgráfico como um subgráfico especial de cluster. Se suportado, o mecanismo de layout fará o layout para que os nós pertencentes ao cluster sejam desenhados juntos, com todo o desenho do cluster contido em um retângulo delimitador.

Observe que, para o bem e para o mal, os subgráficos de cluster são não parte da linguagem DOT, mas apenas uma convenção sintática aderida por alguns dos mecanismos de layout.


Importante: O ID do subgráfico deve começar com cluster.


Exemplo:

graph g{
 subgraph cluster_food {
    eggs; chicken; ham;
    label="Food";
    graph[style=dotted];
 }
}

ham, chicken and eggs

76
marapet