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?

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


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


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"];
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.