web-dev-qa-db-fra.com

Graphviz, modification de la taille du bord

Comment changer la taille de Edge en point (graphviz)? Je voudrais rendre certains bords "en gras".

81
name

Je voulais compléter la réponse de Shuvalov. penwidth est en effet la bonne commande. De plus, dans la réponse de shuvalov penwidth est les deux un nœud et une propriété Edge - également corrects.

La distinction que je voulais faire:

  • penwidth, lorsqu'il est utilisé comme propriété de nœud (par exemple, "NodeA" [penwidth = 5]) affecte le poids de la ligne de bordure pour ce nœud

  • penwidth, lorsqu'elle est utilisée en tant que propriété Edge affecte l'épaisseur de ligne de Edge (la valeur par défaut est "1", la spécification de penwidth = 2 fera apparaître Edge dans type gras

  • si vous voulez changer l'épaisseur de ligne d'un Edge, vous n'avez pas besoin de changer penwidth pour les deux nœuds connectés par cet Edge (comme la réponse de shuvalev pourrait le suggérer)

  • pour un graphique orienté (les bords ont une direction), vous pouvez également changer la taille/le poids de la pointe de flèche et pointe de flèche, avec le Poids du bord, de sorte que les trois restent proportionnels

  • la longueur d'une arête peut être modifiée en définissant la propriété weight, comme ailleurs, la valeur par défaut est 1.0; l'augmentation de cette valeur augmente le coût d'étirement de ce bord pendant le rendu (c'est-à-dire que l'algorithme de dessin applique une pénalité plus élevée aux solutions dans lesquelles ce bord est plus long); notez que l'Edge de 1 à 4 est plus court que l'Edge de 1 à 2.

Le code suivant devrait illustrer tout cela. Le graphique rendu est affiché sous le code.

digraph {
    /* declare the node & style them */
    "Node 1" [shape=diamond, penwidth=3, style=filled, fillcolor="#FCD975"];
    "Node 2" [style=filled,fillcolor="#9ACEEB" ];
    "Node 3" [shape=diamond, style=filled, fillcolor="#FCD975" ];
    "Node 4" [style=filled, fillcolor="#9ACEEB" ]

    /* declare the edges & style them */
    "Node 1" -> "Node 2" [dir=none, weight=1, penwidth=3] ;
    "Node 1" -> "Node 3" [dir=none, color="#9ACEEB"] ;
    "Node 1" -> "Node 4" [arrowsize=.5, weight=2.]
}

enter image description here

123
doug

essaye ça:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
20
shuvalov