我在iGraph
中有一个网络,它有多个表示各种因素的顶点属性。我想根据特定属性绘制图形时为顶点着色。与您在color = variable
中使用ggplot
的方式类似。
vertex.color
中的参数plot()
可用于设置网络中所有顶点的顶点颜色,也可以接受RGB值并为每个顶点设置顶点颜色。
我已经看到RColorBrewer
作为创建托盘的方法,但我不确定如何将其映射回顶点属性。我也不想为每个属性值硬编码颜色,因为我有多个属性,每个属性都有不同的级别。
library(igraph)
library(RColorBrewer)
# create an example network
g <- make_ring(5)
# assign vertex attributes
g <- set.vertex.attribute(g, 'group', 1, 'A')
g <- set.vertex.attribute(g, 'group', 2, 'A')
g <- set.vertex.attribute(g, 'group', 3, 'B')
g <- set.vertex.attribute(g, 'group', 4, 'B')
g <- set.vertex.attribute(g, 'group', 5, 'C')
# create color pallet based on unique values for vertex attribute
pal <- brewer_pal(length(unique(V(g)$group)), "Dark2")
# plot network
plot(g, vertex.color = "gray")