Die Reduzierung der Größe (als Fläche) des Graphen erzeugt, die von graphviz
Hat jemand Allgemeine Tipps für die Reduzierung der Größe des Graphen erzeugt, die von graphviz (Größe wie in der Fläche, nicht in der Dateigröße).
Habe ich eine Recht große Grafik (700 Knoten). Ich eine kleinere Schriftgröße für die einzelnen Knoten, aber es scheint nur reduzieren Sie die Schriftgröße und nicht die tatsächlichen Knoten Größe. Gibt es irgendwelche Attribute zu reduzieren die gesamte Menge von leeren Raum in der Grafik auch? Danke!
- Dieses stackoverflow.com/questions/1286813/... Antwort ist über die eleganteste und am wenigsten Arbeit zu implementieren.
- Nein-die Antwort, die Sie verknüpfen möchten, in " Zusammenfassung ", um die Grafik kleiner, "zoom out" - gut, dass das klappt wohl rendering digital image. GraphViz ist eine graph-layout-engine, daher eine sinnvolle Antwort zu Fragen über die Verringerung Grafik Größe sind vor allem gerichtet, um das layout des Diagramms selbst, denn das ist die Essenz dessen, was GraphViz hat, die layout-Grafiken. Was mehr ist, die "zoom-out" - Lösung ist keine Adresse, eg, große Regionen von white-space oder sparsity, aber Techniken für ein besseres layout in der Tat tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In meiner Erfahrung mit graphviz zum Rendern von Grafiken in der Größe (~ 700 Knoten), minimal trial-and-error-Anpassung an diese Kombination von Attribut-Einstellungen--einige strukturelle, einige aus rein ästhetischen--für alle drei Objekte (graph, Knoten und Kanten) sollte das tun, was Sie wollen:
reduzieren Sie die minimale Trennung zwischen den Knoten, über "nodesep'; z.B. Knoten[nodesep=0.75]; damit wird Ihre Grafik "zu kompakt." (nodesep und ranksep wohl beeinflussen, wie dot zeichnet eine Grafik mehr als alle anderen einstellbaren parameter)
reduzieren Sie die minimale Distanz zwischen den Knoten der verschiedenen Ränge, e.g, Knoten[ranksep=0.75]; 'ranksep' setzt die minimale Distanz zwischen den Knoten der verschiedenen Ränge--dies wird Auswirkungen auf Ihre graph-layout deutlich, wenn Ihr graph besteht aus vielen Reihen
erhöhen der kantengewichte, zB edge[Gewicht=1.2]; dadurch werden die Ränder kürzer, wodurch der gesamte graph kompakter
Knoten entfernen, Ränder und Knoten füllen, z.B. Knoten[color=none; shape=plaintext], vor allem für Ovale Knoten, die einen erheblichen Teil der gesamten Knoten Platz ist "unbenutzt" (dh, nicht verwendet, um die Anzeige der node label); jeder Knoten die Bilanz ist jetzt reduziert auf nur seinen text
explizit festlegen, die Schriftgröße für die Knoten (die node-Grenzen hinaus erweitert werden, so dass Sie umgeben den text-Knoten, was bedeutet, dass die schriftart, die Größe und die Menge an text, die für einen bestimmten Knoten hat einen wesentlichen Einfluss auf seine Größe); [fontsize=11] sollte groß genug sein, um gut lesbar sein, aber auch weniger "überladen" Aussehen (die Standard-Größe ist 14)
verwenden Sie unterschiedliche Farben für Knoten und Kanten--so wird Ihr Diagramm einfacher zu Lesen ist; z.B., setzen Sie den Knoten 'text' Schriftfarbe blau und der Rand Schriftfarbe auf "Grau" zu helfen, das Auge zu unterscheiden, die zwei Sätze von graph-Strukturen. Das macht einen größeren Unterschied, als Sie vielleicht denken.
explizit festgelegt totaler graph-Größe, zB graph[size="7.75,10.25"] (sorgt dafür, dass Ihr graph passt auf eine 8,5 x 11 Seite, und es nimmt den gesamten Raum)
cat [something.dot] | dot-Gdpi=64 -Tpng:cairo:cairo > [outfile.png]
welche nur skaliert das Diagramm...nodes[nodesep=0.75]
funktioniert nicht mehr, es werden direkt in der Grafik. Gleiche fürranksep