2011-04-05 8 views
8

Sto generando il diagramma con graphviz e ho un problema - ci sono molti nodi che sono molto grandi - e un gran numero di piccoli nodi. Ho provato a generare png con neato e fdp ma entrambi generano una grafica molto grande, che è per lo più vuota (i nodi sono molto distanti). C'è un modo per impostare una "forza" della molla più grande per questi strumenti per forzare i nodi più vicini?Come impostare la forza "primavera" con graphviz per layout di grafici compatti

+1

Sapendo questo post è molto antica: se si utilizza SFDP/FDP, c'è un attributo chiamato [K] (http://www.graphviz.org/doc/info/attrs.html#d:K), che serve a questo scopo. – Yosh

risposta

11

Quando si utilizza neato, è possibile armeggiare con overlap e con l'attributo sep.

overlap può essere impostato per false, compress, scalexy e more.

sep può designare sia un margine additivo se utilizzato con un segno più precedente, altrimenti il ​​margine è definito scalando dimensioni del nodo con 1 + il valore di sep. Sembra che il valore predefinito sia

Non esitate a pubblicare un grafico di esempio. Non conoscendo il grafico particolare, ho fatto un esempio che contiene alcuni grandi e alcuni piccoli nodi:

layout=neato; 
overlap=scalexy; //false, compress, ... 
sep="+1"; // 0.1, +1 

node[label="Large node", width=2, height=2]; 
l1; l2; l3; 
node[label="\N", width=0.5, height=0.3]; 
1 -> l1; 
2 -> l1; 
3 -> l1; 
4 -> l1; 
5 -> l1; 
5 -> l2; 
6 -> l2; 
7 -> l2; 
8 -> l2; 
8 -> l3; 
9 -> l3; 
10 -> l3; 

enter image description here

+0

sep = "+ 1" corretto per "Trovato carattere inatteso '+'" – qxo

+0

@qxo sembra che ora devi metterlo tra virgolette 'sep =" + 1 ";' – marapet

Problemi correlati