Ich benutze igraph um ein nicht gerichtetes Kraft-Netzwerk zu plotten.Vertex Labels in igraph R
Ich habe einen Datenrahmen von nodes
und links
wie folgt:
> links
source target value sourceID targetID
1 3 4 0.6245 1450552 1519842
2 6 8 0.5723 2607133 3051992
3 9 7 0.7150 3101536 3025831
4 0 1 0.7695 401517 425784
5 2 5 0.5535 1045501 2258363
> nodes
name group size
1 401517 1 8
2 425784 1 8
3 1045501 1 8
4 1450552 1 8
5 1519842 1 8
6 2258363 1 8
7 2607133 1 8
8 3025831 1 8
9 3051992 1 8
10 3101536 1 8
ich diese mit igraph
plotten wie folgt:
gg <- graph.data.frame(links,directed=FALSE)
plot(gg, vertex.color = 'lightblue', edge.label=links$value, vertex.size=1, edge.color="darkgreen",
vertex.label.font=1, edge.label.font =1, edge.label.cex = 1,
vertex.label.cex = 2)
Auf diesem Grundstück hat IGRAPH verwendet die Proxy-Indizes für source
und target
als Vertex-Labels.
Ich möchte die echten IDs verwenden, in meiner links
Tabelle ausgedrückt als sourceID
und targetID
.
Also, für:
source target value sourceID targetID
1 3 4 0.6245 1450552 1519842
Dies würde zeigen, wie:
(1450552) ----- 0.6245 ----- (1519842)
Statt:
(3) ----- 0.6245 ----- (4)
(Beachten Sie, dass der Proxy-Indizes Null in den links
Datenrahmen indiziert ist und ein im nodes
indizierten Datenrahmen.Dieser Versatz um 1 ist notwendig für igraph
Plotten).
Ich weiß, ich muss irgendwie match
oder map
die Proxy-Indizes ihre name
im nodes
Datenrahmen entspricht. Wie auch immer, ich bin ratlos, da ich die Reihenfolge, in der igraaph Etiketten aufträgt, nicht kenne.
Wie kann ich das erreichen?
Ich habe folgende Fragen vergeblich konsultiert:
Vertex Labels in igraph with R how to specify the labels of vertices in R R igraph rename vertices
Dank für Ihre Antwort danken . Sehr nützlich. Wenn du sagst "Du könntest ... zum Scheitelpunktargument übergehen" was genau meinst du? Willst du 'vertex.attr = merge ....' setzen? – Chuck
Ich meinte 'graph.data.frame (..., vertices = merge (...))'. – lukeA
Ausgezeichnet, sehr geschätzt. – Chuck