Non riesco a capire perché degree.distribution
non funziona per me. Ho provato su R i386 3.0.0 e R x64 3.0.0. Ecco la semplice script per generare un grafico e mostrare la sua distribuzione:R grafico gradi.distribuzione non funziona
library(igraph)
testG = graph.empty(n=10, directed=TRUE)
for(row in 1 : 5) {
src = row
dest = row + 1
testG = add.edges(testG, rbind(src, as.numeric(dest)))
if(row %% 2 == 0) {
dest = row + 2
testG = add.edges(testG, rbind(src, as.numeric(dest)))
}
}
testG
testD = degree.distribution(testG, v=V(testG), cumulative=FALSE)
testD
plot(1 : length(testD), testD, "h", main="Website Graph Degree Distribution", xlab="Degree", ylab="Probability of Degree")
degree(testG)
testG mostra: IGRAPH D--- 10 7 --
(ha un senso). testD show: NULL
(perché?). Il grafico ha un solo valore a (1,1). Ma il grafico contiene nodi con altri gradi, come evidenziato dall'output di degree (testG), che è [1,3,2,4,2,2,0,0,0,0]
.
Questo è un bug: è possibile segnalarlo all'autore del pacchetto. La funzione usa 'hist', il cui risultato ha usato un campo' intensità ', ma è stato rimosso in R 3.0.0 (si può usare invece 'density'). –
Grazie! Avevo il sospetto che potesse essere il caso. L'esecuzione del mio script su R x64 2.15.2 funziona perfettamente. – user1748601
Era già stato segnalato e corretto: https://bugs.launchpad.net/igraph/+bug/1164523 Come soluzione temporanea definire la propria funzione 'degree.distribution', molto semplice, è possibile copiarla da igraph e quindi cambiare' intensità 'a 'densità'. –