4

我在 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 但产生深色的热图包?

4

1 回答 1

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包装下的一些色标,我强烈推荐(查看他们出色的网站以获取更多色标),并使用colorRampPalettewith插入颜色brewer.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" )

在此处输入图像描述

于 2013-06-05T23:44:01.693 回答