Comment éviter que les bords de graphviz se chevauchent

j'ai un graphe que j'ai créé dans graphviz, mais le problème est que les bords se chevauchent (j'ai 5-7 noeuds dans chaque ligne), il est donc difficile de dire pour chaque noeud quels sont les noeuds qu'il connecte.

Comment faire pour que les bords ne se chevauchent pas? Ont croisés les uns des autres est OK.

37
demandé sur David Rabinowitz 2010-10-19 14:56:33

3 réponses

je suppose que vous avez un graphique dirigé que vous mettez en page avec le point.

Je ne pense pas qu'il y ait un interrupteur magique pour empêcher les bords qui se chevauchent. Graphviz essaie de le faire hors des sentiers battus.

quelques suggestions qui peuvent aider, selon le graphique:

  • concentrateurs de bord (concentré=vrai): fusionner des arêtes multiples avec un point final commun en arêtes simples, et avoir des arêtes partiellement parallèles partagent des parties de leur chemin.
  • ports : Bords peuvent avoir leur origine et d'extrémité sur un port spécifique (n, ne, e, se, s, sw, w, nw, w, c, _). Selon les ports de bord, le bord change de forme (spline).
  • noeuds invisibles: il peut y avoir des cas où l'introduction de noeuds invisibles aux bords de route peut avoir l'effet désiré.
25
répondu marapet 2011-01-12 16:53:04

une autre approche consiste à ajouter une propriété de chevauchement au graphique. Les propriétés permises sont scale (qui augmentera considérablement la taille de la sortie) ou false (qui n'augmentera pas la taille autant, mais causera probablement les bords à chevaucher les noeuds).

overlap = scale;

si vous utilisez overlap=false, Vous pouvez vous débarrasser des chevauchements de bord avec les noeuds en ajoutant l'attribut splines=true:

overlap = false;
splines = true;

cela ralentira sensiblement le temps de génération pour les grands graphiques.

15
répondu Joel Rein 2016-07-19 19:09:23

même pour un graphe assez trivial je vois