创建并使用自定义调色板

时间:2016-04-15 15:54:59

标签: r ggplot2 igraph

我想以这样一种方式绘制我的网络:具有更大程度的节点更大并且颜色比另一个更亮。 我试图使用ggnet2库,这就是我得到的。

g <- read.graph(".ds.gml", format = c("gml"))
V(g)$degree <- igraph::degree(g)

myPalette <- colorRampPalette(brewer.pal(9, "Oranges"))(18)

x11()
ggnet2(g, node.color = "degree", node.size = "degree", size.cut = 10)

x11()
ggnet2(g, node.color = "degree", node.size = "degree", size.cut = TRUE, palette = myPalette)

first

second

如您所见,颜色是“随机”的,我想使用调色板作为“Set2”,但如果我... palette = "Set2",我会收到错误:

ggnet2中的错误(g,node.color =“degree”,node.size =“degree”,size.cut = TRUE: ColorBrewer调色板Set2(最大值:8)

的组节点(18)太多

所以我想创建一个新的调色板(myPalette)但是当我应用时,结果不会使用调色板的颜色。为什么呢?

1 个答案:

答案 0 :(得分:0)

如果你不坚持ggplot2,你可以这样做:

library(igraph)
set.seed(1)
g <- ba.game(20)
V(g)$deg <- degree(g)
pal <- colorRampPalette(RColorBrewer::brewer.pal(9, "Oranges"))(max(V(g)$deg))
plot(g, vertex.color=pal[V(g)$deg-min(V(g)$deg)+1], 
     vertex.size=plotrix::rescale(V(g)$deg, c(15, 25)))