根据名称选择节点颜色

时间:2018-04-23 19:32:54

标签: r colors grouping igraph

我有许多igraph对象代表不同组成员之间的连接。我的图形数据集的一个简单示例如下:

library(igraph)
m<-matrix(data = c("a1_ghj",    "a1_phj",
                   "b2_ghj",    "c1_pht",
                   "c1_ght",    "a1_ghi",
                   "g5_pht",    "d2_phj",
                   "r5_phj",    "u6_pht"), ncol = 2)
))

g<-graph_from_edgelist(m)
g

在第一种情况下,我想绘制这个图表,关于在_之后具有相似字符的每个顶点名称,这意味着它们在同一组中并且它们应该具有相同的随机颜色。但是,由于不同图表中的组数不同,我不知道在这种情况下如何着色它们。任何人都可以在这个问题上提供帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以在顶点名称上使用sub来获取后缀。然后将这些视为一个因素,为每种类型的节点获取不同的颜色。

Suffixes = factor(sub(".*_", "", names(V(g))))
Suffixes
 [1] ghj ghi phj pht ghj phj pht phj ght pht
Levels: ghi ghj ght phj pht
plot(g, vertex.color=rainbow(5)[Suffixes])

Colored nodes