2011-05-11 18 views

risposta

16

È possibile controllare l'algoritmo di Fruchterman-Reingold utilizzando la funzione layout.fruchterman.reingold. vedi: help('layout.fruchterman.reingold'). Una configurazione che uso spesso e si ottiene un po 'più di distanza è:

l <- layout.fruchterman.reingold(g,niter=500,area=vcount(g)^2.3,repulserad=vcount(g)^2.8) 
plot(g,layout=l) 

dove g è il vostro oggetto grafico. Meglio solo testare diversi valori di questi parametri per il tuo grafico e vedere cosa funziona. Soprattutto lo repulserad influenza la spaziatura in un grafico. Il valore predefinito è il quadrato del numero di nodi, quindi valori più alti dovrebbero ottenere grafici più spaziati.

+10

"L'argomento' repulserad 'è deprecato e non ha alcun effetto ", almeno in v.1.0.1. . – WAF

7

Se l'algoritmo layout.fruchterman.reingold continua a non fornire ciò che si desidera modificando i parametri, procedere come segue. Ogni layout restituisce un insieme di coordinate, con la coordinata x e y rispettivamente nella prima e nella seconda colonna. È possibile applicare alcuna trasformazione che ti piace qui, e se vorrei solo in scala, è sufficiente utilizzare

L = layout.fruchterman.reingold(G)*s; #Scaling factor s 

trasformazioni più fantasia sono naturalmente anche possibile. Solo per la cronaca, puoi anche modificare il layout manualmente con il tuo mouse usando tkplot(G, layout=L). È possibile ottenere le coordinate indietro tramite L = tkplot.getcoords(1).

+2

il ridimensionamento di una costante non ha alcun effetto, a meno che non si dia il parametro 'rescale = FALSE' alla funzione' igraph :: plot' – deeenes

Problemi correlati