我有一些数据可以显示Twitter上人与人之间的联系(即在推文中标记其他用户的人),并希望绘制人与人之间的联系。在某些情况下,这种关系是对等的,因为两个人都标记了对方,而有些人却被标记了但没有发过推文。
在下面的示例中,人A标记了人B和人C,而人C仅标记了人B。箭头从人A->人C和人C->人B是单向的,但在人A <->人B。是否可以使这些箭头使用不同的颜色?
library(igraph)
df <- data.frame (from = c("Person A", "Person A", "Person B", "Person C"),
to = c ("Person B", "Person C", "Person A", "Person B"),
weight = c (1, 3, 4, 5)
)
g_1 <- graph.data.frame(df,
directed = TRUE)
set.seed(123)
plot (g_1,
edge.width = E(g_1)$weight)
答案 0 :(得分:2)
可以选择color
的边颜色指定E
自变量,并且借助is.mutual()
函数可以找到倒数边:
E(g_1)$color <- "grey50"
E(g_1)$color[is.mutual(g_1)] = "red"
plot(g_1, edge.width = E(g_1)$weight)
答案 1 :(得分:1)
您可以使用pub fn trigger_listeners<t>(listeners: &mut Vec<&mut T>)
where T: Listener + ?Sized
{
for x in listeners {
x.trigger();
}
}
函数为双向边缘着色(取自R reciprocal edges in igraph in R并经过修改以着色而不是弯曲):
duplicated()
完整示例:
E(g_1)[duplicated(E) | duplicated(E,fromLast =TRUE)]$color <- "red"