Como adicionar etiquetas de borda no Graphviz?

169

Estou tentando desenhar um gráfico usando o Graphviz, mas preciso adicionar rótulos nas bordas. Parece não haver nenhuma maneira de fazê-lo no Graphviz. Existe uma saída?

user855
fonte

Respostas:

234

Você usa a propriedade label anexada à borda.

digraph G {
 a -> b [ label="a to b" ];
 b -> c [ label="another label"];
}

O exemplo acima gera um gráfico parecido com este.

texto alternativo

Andrew Walker
fonte
32
Por que as etiquetas estão tocando nas bordas? Não deveria haver uma lacuna?
precisa saber é o seguinte
11
@AndreKR Uma solução rápida é colocar um espaço no início do rótulo: a -> b [label = "a to b"];
chembrad
6
Outra correção é usar rankdir="LR";, que produz um gráfico horizontal com etiquetas colocadas acima da borda sem tocar.
21412 Dave McMahon
6
existe uma maneira de girar os rótulos verticalmente para ficar paralelos à linha?
Justin L.
5
Para referência futura, a documentação da linguagem DOT está aqui e a documentação dos atributos está aqui .
Jens
23

@ Andrew Walker deu uma ótima resposta!

Também vale a pena estar ciente do labeltooltip atributo . Isso permite que uma sequência adicional seja anexada ao rótulo de uma aresta. Isso é mais fácil para um usuário do que o tooltipatributo, pois pode ser difícil pairar diretamente em uma borda. A sintaxe é a seguinte:

digraph G {
 a -> b [label="  a to b" labeltooltip="this is a tooltip"];
 b -> c [label="  another label" ];
}

O que fornece o seguinte resultado: exemplo de etiqueta com dica de ferramenta

Allan Bowe
fonte
8

Você pode usar label="\E"Ele irá gerar uma etiqueta padrão.

Por exemplo:

digraph G {
 a -> b [ label="\E" ];
 b -> c [ label="\E"];
}
Nirav Patel
fonte