Ich kann nicht herausfinden, warum degree.distribution
nicht funktioniert für mich. Ich habe R i386 3.0.0 und R x64 3.0.0 versucht. Hier ist die einfache Skript ein Diagramm und zeigt die Verteilung zu erzeugen:R graph grad.distribution funktioniert nicht
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 zeigt: IGRAPH D--- 10 7 --
(sinnvoll). testD zeigt: NULL
(warum?). Die Handlung ist mit nur einem Wert bei (1,1). Aber das Diagramm enthält Knoten mit anderen Graden, wie die Ausgabe von Grad (testG) zeigt, nämlich [1,3,2,4,2,2,0,0,0,0]
.
Das ist ein Fehler: Sie können es dem Paketautor melden. Die Funktion verwendet 'hist', deren Ergebnis früher ein 'intensities'-Feld hatte, aber in R 3.0.0 wurde entfernt (man kann stattdessen' density' verwenden). –
Danke! Ich hatte den Verdacht, dass dies der Fall sein könnte. Das Ausführen meines Skripts auf R x64 2.15.2 funktioniert einwandfrei. – user1748601
Wurde bereits gemeldet und behoben: https://bugs.launchpad.net/igraph/+bug/1164523 Als Workaround definieren Sie Ihre eigene 'degree.distribution' Funktion, sehr einfach, Sie können es aus dem ifigraph kopieren und dann' ändern Intensitäten zu "Dichte". –