【发布时间】:2017-03-13 23:00:57
【问题描述】:
我想使用调色板为 igraph 中的图形边缘定义颜色。我已经使用RColorBrewer 创建了调色板,并且需要根据边缘属性信息为每个边缘分配唯一的颜色。
这是我目前的尝试:
colrs<- brewer.pal(length(unique(E(g)$fruit)), "Accent")
E(g)$color <- colrs[E(g)$fruit] #Does not work
E(g)$color
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[40] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[79] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
有没有办法可以将E(g)$fruit 用作colrs 列表的索引?
E(g)$fruit有4种水果:
unique(E(g)$fruit)
"Apple" "Orange" "Grapes" "Pear"
因此,根据每条边的 fruit 类型,它应该从colrs 列表中获取相应的颜色,这样所有带有“Apple”的边缘都具有相同的颜色,所有带有“Apple”的边缘都具有相同的颜色橙色”具有相同的颜色等等。我最终将使用以下代码绘制图表:
plot(g,layout=layout.fruchterman.reingold, vertex.color='grey80', vertex.label.color="black", edge.color=E(g)$color)
这是我的图表边缘列表的示例:
from to fruit
1 A B Apple
2 A C Apple
3 B C Grapes
4 D B Pear
5 D C Orange
【问题讨论】: