在iGraph中为节点着色

时间:2018-09-10 15:48:11

标签: r igraph data-manipulation

HAVE是一个数据帧,其中包含音乐剧Artists,它们的FriendsGenre的{​​{1}}:

Artists

Artist Friend ArtistGenre 2 Chainz Boy Wonder HIPHOP 2 Chainz Chris Brown HIPHOP 2 Chainz Drake HIPHOP Billy Joel Cindi Lauper ROCK Blake Shelton Gwen Stefani COUNTRY 是一个图形,显示了NEEDArtist之间的连接,其中Friend中的所有人的节点颜色之间的差异为Artist

我在这里生成的图没有条件着色的节点:

ArtistGenre

但是事实证明,用x <- graph_from_edgelist(as.matrix(HAVE[,1:2]), directed = F) plot.igraph(x, vertex.label=NA, vertex.size=1.5)更改节点颜色非常困难。如何将Genre映射到节点颜色?

1 个答案:

答案 0 :(得分:3)

这是一种方法。这将按流派为Artist节点着色,将Friend节点保持为白色。我添加了标签并使节点变大,以便您可以看到发生了什么...

plot.igraph(x, 
            vertex.label = vertex.attributes(x)$name, 
            vertex.size = 25,
            vertex.color = match(vertex.attributes(x)$name,
                                 HAVE$Artist))

enter image description here