2011-04-05 16 views
8

Estoy generando un diagrama con graphviz y tengo un problema - hay varios nodos que son muy grandes - y un gran número de nodos pequeños. Intenté generar png con neato y fdp, pero ambos generan gráficos muy grandes, que en su mayoría están en blanco (los nodos están muy separados). ¿Hay alguna manera de establecer una mayor "fuerza" de primavera para estas herramientas para forzar los nodos más cerca unos de otros?Cómo establecer la fuerza 'spring' con graphviz para diseños de gráficos compactos

+1

Conociendo este post es muy antiguo: si se utiliza SFDP/FDP, hay un atributo llamado [K] (http://www.graphviz.org/doc/info/attrs.html#d:K), que sirve para este propósito. – Yosh

Respuesta

11

Al usar neato, puede jugar con el overlap y con el atributo sep.

overlap se puede configurar para false, compress, scalexy y more.

sep puede designar un margen aditivo cuando se utiliza con un signo más anterior, de lo contrario el margen se define escalando el tamaño del nodo con 1 + el valor de sep. Parece que por defecto

No dude en publicar un gráfico de muestra. Sin saber su gráfico en particular, hice un ejemplo que contiene algunos grandes y algunos pequeños nodos:

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" corregido para "Carácter inesperado encontrado" + '" – qxo

+0

@qxo parece que ahora tiene que ponerlo entre comillas' sep = "+ 1"; ' – marapet

Cuestiones relacionadas