根据名称选择节点颜色

choosing nodes color according to their name

我有很多代表不同组成员之间联系的 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

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

您可以在顶点名称上使用 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])