我认为这是非常基本的,但我们似乎无法找到这个问题的答案。我们正在构建网络分析图,并希望根据属性为每个节点着色。我们可以做两种颜色,但需要做的不止于此。我们没有使用iGraph,虽然我们发现的大多数搜索都给出了这个例子。以下是我们针对不同组和颜色的代码:
#### Nodes Attributes ####################################################
nodeColors<-ifelse(nodeInfo$Section=="1","hotpink","dodgerblue")
#nodeColors<-(nodeInfo$Section)
## We can easily give two colors but we need four colors.
##########################################################################
##########################################################################
#### Visualisation ####################################################
gplot(relations,gmode="graph",displaylabels=TRUE,vertex.col=nodeColors, mode =
"fruchtermanreingold")
我们想要做的是这样的事情:
我们根据方向组分配了4个不同的组: nodeColors&lt; -nodeInfo $ Orientation ==&#34; 1 2 3 4&#34;,&#34; red&#34;,&#34; blue&#34;,&#34; yellow&#34;,&#34 ;绿色&#34)
思考?我们做错了什么?
答案 0 :(得分:0)
我们做错了什么?
没有人可以说,因为你没有展示你实际做过的可复制(=复制 - 粘贴 - 运行&#39;能力)的例子。
但是,我想dplyr
&#39; case_when
会让您的生活更轻松:
(x <- c(1:4, 1))
# [1] 1 2 3 4 1
dplyr::case_when(
x==1~"red",
x==2~"orange",
x==3~"blue",
TRUE~"lightgray"
)
# [1] "red" "orange" "blue" "lightgray" "red"
您可能需要事先install.packages("dplyr")
。您的问题中x
为nodeInfo$Orientation
。您可以使用case_when
将nodeColors
的结果分配给变量<-
。有关该功能的更多信息,请参阅?dplyr::case_when
。