根据 R 中的匹配顶点类型定义边标签
Define Edge labels based on matching vertex type in R
我有一个图 net
有两种不同类型(1 和 2)的顶点,分别出现 n1 和 n2 次:
net %v% "type" <- c(rep("1", n1), rep("2", n2))
我们有一些随机生成的边,概率为 ps 和 pd,其中 ps 是具有相同类型(1-1 或 2-2)和 pd 的边概率不同类型 (1-2).
我想绘制此图,使相同类型(即 1-1 或 2-2)之间的边与不同类型(1-2)之间的边具有不同的颜色。
我该怎么做?
我尝试使用网络包的 %e%
运算符,但我对如何获取每条边的末端节点的类型感到困惑。
谢谢!
你想要吗?
from <- sample(1:2, 10, replace = T)
to <- sample(1:2, 10, replace = T)
node <- cbind(from, to)
library(igraph)
net <- graph_from_edgelist(node, directed = F)
edge_color <- function(from_to){
from_node <- from_to[1]
to_node <- from_to[2]
ifelse(from_node == to_node, return("red"), return("blue"))
}
color<- apply(node, 1, edge_color)
plot(net, edge.color=color)
我有一个图 net
有两种不同类型(1 和 2)的顶点,分别出现 n1 和 n2 次:
net %v% "type" <- c(rep("1", n1), rep("2", n2))
我们有一些随机生成的边,概率为 ps 和 pd,其中 ps 是具有相同类型(1-1 或 2-2)和 pd 的边概率不同类型 (1-2).
我想绘制此图,使相同类型(即 1-1 或 2-2)之间的边与不同类型(1-2)之间的边具有不同的颜色。
我该怎么做?
我尝试使用网络包的 %e%
运算符,但我对如何获取每条边的末端节点的类型感到困惑。
谢谢!
你想要吗?
from <- sample(1:2, 10, replace = T)
to <- sample(1:2, 10, replace = T)
node <- cbind(from, to)
library(igraph)
net <- graph_from_edgelist(node, directed = F)
edge_color <- function(from_to){
from_node <- from_to[1]
to_node <- from_to[2]
ifelse(from_node == to_node, return("red"), return("blue"))
}
color<- apply(node, 1, edge_color)
plot(net, edge.color=color)