web-dev-qa-db-fra.com

Réduire la taille (comme dans la zone) du graphique généré par graphviz

Quelqu'un at-il des conseils généraux pour réduire la taille d'un graphique généré par graphviz (taille comme dans la zone, pas comme dans la taille du fichier).

J'ai un graphique assez grand (700 nœuds). J'ai défini une taille de police plus petite pour chaque nœud, mais cela ne semble que réduire la taille de la police et non la taille réelle du nœud. Existe-t-il également des attributs permettant de réduire la quantité globale d'espace vide dans le graphique? Merci!

60
meteoritepanama

D'après mon expérience avec graphviz pour rendre des graphiques de cette taille (~ 700 nœuds), un ajustement minimal par essais et erreurs à cette combinaison de paramètres d'attribut - certains structurels, certains purement esthétiques - pour les trois objets (graphique, nœuds et bords) devrait faire ce que vous voulez:

réduire la séparation minimale entre les nœuds, via 'nodesep'; par exemple, nœuds [nodesep = 0,75] ; cela rendra votre graphique "trop compact". ( nodesep et ranksep affectent probablement la façon dont le point dessine un graphique plus que tout autre autre paramètre réglable)

réduire la distance minimale entre les nœuds de rangs différents, par exemple, nœuds [ranksep = 0,75] ; 'ranksep' définit la distance minimale entre les nœuds de rangs différents - cela affectera considérablement la disposition de votre graphique si votre graphique est composé de plusieurs rangs

augmenter les poids Edge, par exemple, Edge [weight = 1.2] ; cela rendra les bords plus courts, ce qui rendra le graphique entier plus compact

supprimer les bordures des nœuds et le remplissage des nœuds, par exemple, nœuds [couleur = aucun; forme = texte en clair] , en particulier pour les nœuds de forme ovale, une fraction substantielle de l'espace total des nœuds est "inutilisée" (c'est-à-dire qu'elle n'est pas utilisée pour afficher l'étiquette du nœud); l'empreinte de chaque nœud est désormais réduite à son texte

définir explicitement la taille de la police pour les nœuds (les bordures du nœud sont agrandies de manière à entourer le texte du nœud, ce qui signifie que la taille de la police et la quantité de texte pour un nœud donné ont un effet significatif sur sa taille ); [fontsize = 11] doit être suffisamment grand pour être lisible tout en réduisant l'apparence "encombrée" (la taille par défaut est 14)

tilisez des couleurs différentes pour les nœuds et les bords - cela rendra votre graphique plus facile à lire; Par exemple, définissez la couleur de police du texte du nœud sur bleu et la couleur de police Edge sur "gris" pour aider l'œil à distinguer les deux ensembles de structures de graphique. Cela fera une plus grande différence que vous ne le pensez.

définir explicitement la taille totale du graphique, par exemple, graphique [size = "7.75,10.25"] (garantit que votre graphique tient sur une page 8,5 x 11 et qu'il occupe tout l'espace)

93
doug