我经常使用ggplot2
使渐变变得漂亮(click here for an example)。我需要在基地工作,我认为scales
也可以在那里用来创建颜色渐变,但我严重偏离了如何。基本目标是生成n种颜色的调色板,范围从x颜色到y颜色。解决方案需要在基础上工作。这是一个起点,但没有地方输入n。
scale_colour_gradientn(colours=c("red", "blue"))
我很清楚:
brewer.pal(8, "Spectral")
来自RColorBrewer
。我正在寻找类似于ggplot2
如何处理渐变的方法,这些渐变表示我有这两种颜色,我想要沿途有15种颜色。我怎样才能做到这一点?
colorRampPalette
可能是你的朋友:
colfunc <- colorRampPalette(c("black", "white"))
colfunc(10)
# [1] "#000000" "#1C1C1C" "#383838" "#555555" "#717171" "#8D8D8D" "#AAAAAA"
# [8] "#C6C6C6" "#E2E2E2" "#FFFFFF"
只是为了表明它有效:
plot(rep(1,10),col=colfunc(10),pch=19,cex=3)
只是为了扩展上一个答案colorRampPalette
can处理两种以上的颜色。
因此,对于更加扩展的“热图”类型,你可以......
colfunc<-colorRampPalette(c("red","yellow","springgreen","royalblue"))
plot(rep(1,50),col=(colfunc(50)), pch=19,cex=2)
结果图像:
上述答案很有用,但在图表中,很难区分黑色的较暗渐变。我发现的另一种方法是使用灰色渐变,如下所示
palette(gray.colors(10, 0.9, 0.4))
plot(rep(1,10),col=1:10,pch=19,cex=3))
关于灰度here.的更多信息
添加
当我将上面的代码用于不同颜色(如蓝色和黑色)时,渐变并不那么清晰。 heat.colors()
似乎更有用。
This document有更详细的信息和选项。 pdf