如何增加colorramppalette中的色彩强度

时间:2013-06-05 23:39:15

标签: r

我在R中使用pheatmap包来制作不同类型数据的热图。并使用colorramppalette制作颜色,但颜色非常明亮。

我想要一些深色,我该怎么做?

这是代码:

hmcols<-colorRampPalette(c("white","red"))(256)

pheatmap(
  test,
  color=hmcols,
  cluster_rows=FALSE,
  cluster_cols=FALSE,
  legend=TRUE,
  show_rownames=FALSE,
  show_colnames=FALSE,
  filename="a.png"
)

如何在colorramppalette中增加颜色强度,或者我可以使用任何其他类似于pheatmap但产生深色的热图包?

1 个答案:

答案 0 :(得分:6)

尝试使用hcl并调整亮度步长。例如:

cols <- hcl(0,l=seq(1,100,length=11))
cols
# [1] "#3F0000" "#470016" "#591D2D" "#6F3744" "#87505B" "#A06974" "#BB838D" "#D69DA8"
# [9] "#F1B8C3" "#FFD4DE" "#FFF0FB"
plot(1:11,cex=4,bg=cols,pch=21)

?hcl下有很多例子,我相信你会找到一些适合你需要的颜色。

如果这不符合您的需求,您还可以使用RColorBrewer包装下的一些颜色标度,我强烈推荐(查看他们的excellent website以获得更多色标),并使用colorRampPalettebrewer.pal插入颜色,并可能截断颜色标度的结尾。

您还可以使用分歧颜色标度,再次来自RColorBrewer而不是顺序颜色标度。所以这里有一些例子:

require(RColorBrewer)
par(mfrow=c(2,2))

cols <- colorRampPalette( colors = hcl(0,l=seq(1,100,length=11)) )
plot( 1:11 , cex = 4 , bg = cols(11) , pch = 21 , main = "HCL Colours")

cols <- colorRampPalette( colors = rev(brewer.pal(9,"Reds")) )
plot( 1:11 , cex = 4 , bg = cols(11) , pch = 21 , main = "Sequential RColorBrewer palette")

cols <- colorRampPalette( colors = rev(brewer.pal(9,"Reds"))[1:5] )
plot( 1:11 , cex = 4 , bg = cols(11) , pch = 21 , main = "Truncated sequential\nRColorBrewer palette" )

cols <- colorRampPalette( colors = brewer.pal(9,"RdBu") )
plot( 1:11 , cex = 4 , bg = cols(11) , pch = 21 , main = "Diverging RColorBrewer palette" )

enter image description here