首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >彩色图节点

彩色图节点
EN

Stack Overflow用户
提问于 2015-04-14 13:46:50
回答 1查看 307关注 0票数 0

在R中,我需要用不同的颜色来绘制图社区(一组节点),在这种情况下,我需要处理17个社区(所以我需要17个不同的颜色)。若要给节点颜色,请使用以下命令。

代码语言:javascript
复制
 V(g5)$color<- ifelse(V(g5)$name %in% V(g3)$name,com$membership+1, "white")

com$membership    
1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17  1  1  1  1  1  1  1  1  1  1  1  1  2  2  2  2  2  2  2  2  2  2  2  2  3  3  3  3  3  3  3  3  3  4  4  4 4  4  4  4  4  4  5  5  6  6  6  6  6  6  6  6  7  7  8  8  8  8  9  9  9  9  9  9  9  9 10 10 10 10 10 10 10 11 11 11 11 11 11 12 12 13 13 13 13 14 14 14 14 15 15 15 15 16 17 17 9 14

和情节:

代码语言:javascript
复制
 plot(g5, vertex.color=V(g5)$name)

问题是,我只得到6种颜色,它重复到其他社区。我如何才能正确地给这17个社区涂上不同的颜色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 17:02:16

如果您只使用数字索引指定颜色,R将从当前的palette()中提取颜色。默认情况下,这包含8种不同的颜色。

代码语言:javascript
复制
palette()
# [1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow" 
# [8] "gray"

如果您指定的索引大于8,则R只会在索引周围循环,从而使1==9

您可以更改掌纹以包含更多的颜色。

代码语言:javascript
复制
palette(rainbow(17))

或者可以显式设置颜色,而不是指定颜色索引。

代码语言:javascript
复制
mycols <- rainbow(17)
V(g5)$color<- ifelse(V(g5)$name %in% V(g3)$name,mycols[com$membership], "white")

这可能比改变调色板“安全”,因为这将影响所有其他情节以及。

代码语言:javascript
复制
g <- graph.ring(17)
V(g)$color <- rainbow(17)
plot(g)

注意:这不是那么容易找到17种不同的颜色,你可以很容易地分辨通过眼睛。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29629089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档