控制要更改igraph大小的节点

控制要更改igraph大小的节点,r,igraph,R,Igraph,这看起来可能很简单,但我无法做到这一点。我想画两种类型的节点,小的和大的使用截止。这些值位于属性度中 下面是一个小玩具的例子 g1 <- graph(edges=c(1,2, 2,3, 3, 1, 4,2), n=4, directed=F) %>% set_vertex_attr("names", value = LETTERS[1:4]) g1_degree <- degree(g1, mode = "total&quo

这看起来可能很简单,但我无法做到这一点。我想画两种类型的节点,小的和大的使用截止。这些值位于属性度中

下面是一个小玩具的例子

    g1 <- graph(edges=c(1,2, 2,3, 3, 1, 4,2), n=4, directed=F) %>%
    set_vertex_attr("names", value = LETTERS[1:4])
    g1_degree <- degree(g1, mode = "total")
     g1_degree
    [1] 2 3 2 1
    g1 <- set_vertex_attr(g1, "degree", value = g1_degree)
plot(g1, vertex.size=V(g1)$degree)
g1%
设置顶点属性(“名称”,值=字母[1:4])

这里有两种解决方案

一个带有
ifelse
,如问题中所示

g1 <- set_vertex_attr(g1, "degree", value = ifelse(V(g1)$degree < 2, 1, 5))

V(g1)$degree
#[1] 5 5 5 1
使用
findInterval
索引
c(10,50)[i]
设置不同的新大小,图表如下所示

g1 <- set_vertex_attr(g1, "degree", value = c(10, 50)[i])
plot(g1, vertex.size = V(g1)$degree)

g1试试
g1谢谢!我能够使用ifelse解决方案,以后肯定会检查findInterval函数。
i <- findInterval(V(g1)$degree, c(0, 2, Inf))
g1 <- set_vertex_attr(g1, "degree", value = c(1, 5)[i])

V(g1)$degree
#[1] 5 5 5 1
g1 <- set_vertex_attr(g1, "degree", value = c(10, 50)[i])
plot(g1, vertex.size = V(g1)$degree)