J'utilise igraph pour tracer un réseau de force non dirigée.Vertex Étiquettes en igraph R
J'ai un dataframe de nodes
et links
comme suit:
> 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
Je conspire ces utilisant igraph
comme suit:
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)
Sur cette parcelle, igraph a utilisé le index de proxy pour source
et target
comme étiquettes de sommet.
Je veux utiliser les vrais ID, dans mon links
table exprimée en sourceID
et targetID
.
Ainsi, pour:
source target value sourceID targetID
1 3 4 0.6245 1450552 1519842
Cela montrerait que:
(1450552) ----- 0.6245 ----- (1519842)
Au lieu de:
(3) ----- 0.6245 ----- (4)
(Notez que les indices proxy sont nuls indexées dans le links
dataframe et un indexé dans la trame de données nodes
Ce décalage de 1 est nécessaire pour igraph
traçage).
Je sais que je dois en quelque sorte match
ou map
les indices proxy à leur correspondant name
dans le nodes
dataframe. Cependant, je suis à la perte car je ne connais pas l'ordre dans lequel igraph trace les étiquettes.
Comment puis-je y parvenir?
J'ai consulté les questions suivantes en vain:
Vertex Labels in igraph with R how to specify the labels of vertices in R R igraph rename vertices
Merci pour votre réponse . Vraiment utile. Quand vous dites 'vous pourriez passer ... à l'argument des sommets ', que voulez-vous dire exactement? Voulez-vous définir 'vertex.attr = merge ....'? – Chuck
Je voulais dire 'graph.data.frame (..., vertices = merge (...))'. – lukeA
Excellent, très apprécié. – Chuck