Graphviz, changer la taille du bord


90

Comment changer la taille du bord en point (graphviz)? Je voudrais faire quelques bords "gras".

Réponses:


132

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 à la fois un nœud et une propriété de bord - également correct.

La distinction que je voulais faire:

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

  • taillecrayon , lorsqu'il est utilisé comme une propriété de bord affecte le poids de la ligne du bord (valeur par défaut est « 1 », 2 penwidth = spécification fera apparaître le bord en gras de type

  • si vous souhaitez modifier l' épaisseur de ligne d'un bord, vous n'avez pas besoin de changer la largeur du stylo pour les deux nœuds connectés par ce bord (comme la réponse de shuvalev pourrait le suggérer)

  • pour un graphique orienté (les arêtes ont une direction), vous pouvez également modifier la taille / le poids de la pointe de flèche et de la queue de flèche, ainsi que l' épaisseur du bord , de sorte que les trois restent proportionnels

  • la longueur d'un bord 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 cette arête pendant le rendu (c'est-à-dire que l'algorithme de dessin applique une pénalité plus élevée aux solutions dans lesquelles cette arête est plus longue); notez que le bord de 1 à 4 est plus court que le bord de 1 à 2.

Le code suivant doit 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.]
}

entrez la description de l'image ici


Pour une raison quelconque, la weightpropriété ne change rien pour moi. Le reste est super utile, cependant… merci!
clozach

Cela a été très utile, en particulier avec l'image - m'a aidé à comprendre la relation ici. La syntaxe graphviz est un peu particulière, donc ces belles images ont vraiment beaucoup aidé. La seule partie, si je pouvais changer ce qui précède, serait d'ajouter un peu plus d'explication en ce qui concerne la largeur du stylo, car pour le moment, les lignes sont toutes en gras (j'ai changé cela, grâce à ce qui précède), mais la bordure autour les nœuds individuels ne sont pas plus épais, ce que je voulais faire au départ. Je pourrai éventuellement résoudre ce problème, mais dans le cas où j'oublierais de publier la solution ici, j'ajoute simplement ceci à la place. :)
shevy

20

essaye ça:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.