2012-08-22 11 views
5

I tiene una el siguiente diagrama creado en igraphControlling que los bordes son visibles en un diagrama de red en igraph en r

set.seed(1410) 
df<-data.frame(
"site.x"=c(rep("a",4),rep("b",4),rep("c",4),rep("d",4)), 
"site.y"=c(rep(c("e","f","g","h"),4)), 
"bond.strength"=sample(1:100,16, replace=TRUE)) 

library(igraph) 
df<-graph.data.frame(df) 
V(df)$names <- c("a","b","c","d","e","f","g","h") 
layOUT<-data.frame(x=c(rep(1,4),rep(2,4)),y=c(4:1,4:1)) 
E(df)[ bond.strength < 101 ]$color <- "red" 
E(df)[ bond.strength < 67 ]$color <- "yellow" 
E(df)[ bond.strength < 34 ]$color <- "green" 
V(df)$color <- "white" 
l<-as.matrix(layOUT) 
plot(df,layout=l,vertex.size=10,vertex.label=V(df)$names, 
edge.arrow.size=0.01,vertex.label.color = "black") 

enter image description here

Quiero mostrar todos los vértices/nodos, pero sólo bordes donde bond.strength> 34 (es decir, solo los bordes rojo y amarillo). Puedo controlar esto mediante el establecimiento bond.strength < 34 a blanco, pero no es bastante cuando se hace en mis datos reales establecidos como los bordes blancos "cortar a través de" los otros bordes, es decir

enter image description here

¿Hay otra manera de simplemente controlar qué bordes son visibles mientras se muestran todos los vértices? Gracias

Respuesta

5

Me pregunto qué pasa si establece el color de las líneas a ser transparente, algo así como:

E(df)[ bond.strength < 34 ]$color <- "#FF000000" 

me cocinaron ese número de color con:

hsv(1,1,1,alpha=0) 

Alternativamente, usted podría entra y omítalos de tu edgelista.

+0

Eso funcionó muy bien. ¡Gracias! – Elizabeth

+1

Esto no es perfecto, porque algunos dispositivos no son compatibles con la transparencia. Una mejor solución es establecer el tipo de línea a '0', lo que significa que no hay línea en absoluto:' E (df) [bond.strength <34] $ lty <- 0'. –

+0

muy bueno! la transparencia era el truco que necesito para hacer que los nodos desaparezcan silenciosamente. size = 0, shape = "none" y muchas otras configuraciones simplemente no funcionaron. Gracias – Raffael

Cuestiones relacionadas