Cómo colorear los bordes en una red multiplex con R
Actualmente estoy analizando una red múltiple basada en un conjunto de datos creado por mí.
Quiero poder trazar la red de manera que pueda asignar colores diferentes a los dos tipos de enlaces en mi red múltiple.
La lista de enlaces de esta red luce así:
- La red múltiple se llama multi_g.
- Es un objeto de igraph.
- Los dos tipos de enlaces son trade_tie y bilateralaid_tie.
- Los enlaces se encuentran en columnas diferentes de la lista de enlaces y, por lo tanto, en atributos de enlace separados.
Intenté trazarla con el siguiente código:
plot(multi_g,
edge.color=c("brown", "green")[E(multi_g)$trade_tie+E(multi_g)$bilateralaid_tie],
edge.arrow.size = 0.5,
vertex.color="gray40",
vertex.label.color = "black",
layout= layout_with_fr)
Al usar esta fórmula, muchos enlaces no se trazan.
Muchas gracias de antemano por tu ayuda.
Si hay alguna forma de trazarlo con ggraph, también lo apreciaría mucho.
davy.ai
Para asignar diferentes colores a los dos tipos de aristas en la red multiplex utilizando
igraph
, puedes modificar el argumento de color de las aristas de la siguiente manera:Explicación del código:
ifelse(E(multi_g)$trade_tie == 1, "brown", "green")
: Esta expresión asigna el color “brown” a las aristas detrade_tie
que tienen el valor 1 (es decir, que existen) y “green” a las aristas debilateralaid_tie
.layout_with_fr
es un algoritmo de disposición utilizado para posicionar los vértices en el gráfico.En cuanto a tu comentario sobre el uso de
ggraph
para representar la red con diferentes colores para los dos tipos de aristas, aquí tienes un ejemplo:Explicación del código:
as_tbl_graph()
convierte el objetoigraph
a un objetotbl_graph
que se puede utilizar conggraph
.geom_edge_link(aes(color = edge_type))
asigna el color de las aristas en función del atributoedge_type
.scale_edge_color_manual(values = c("brown", "green"))
asigna los valores de color a los dos tipos de aristas.geom_node_point()
ygeom_node_text()
se utilizan para mostrar los vértices y sus etiquetas.theme_void()
elimina el tema predeterminado.