从颜色1和颜色2的n种颜色的渐变

我经常使用ggplot2 ,使渐变更好( 点击这里为例 )。 我需要在基地工作,我认为可以在那里使用scales来创build颜色渐变,但是我严重偏离了标准。 基本目标是生成从x颜色到y颜色的n种颜色的调色板。 解决scheme需要在基地工作。 这是一个起点,但是没有地方可以inputn。

  scale_colour_gradientn(colours=c("red", "blue")) 

我很清楚:

 brewer.pal(8, "Spectral") 

来自RColorBrewer 。 我正在寻找更多类似于ggplot2处理渐变的方法, 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可以处理两种以上的颜色。

所以对于一个更扩大的“热图”types看起来你可以….

 colfunc<-colorRampPalette(c("red","yellow","springgreen","royalblue")) plot(rep(1,50),col=(colfunc(50)), pch=19,cex=2) 

由此产生的图像:

在这里输入图像描述

尝试以下操作:

 color.gradient <- function(x, colors=c("red","yellow","green"), colsteps=100) { return( colorRampPalette(colors) (colsteps) [ findInterval(x, seq(min(x),max(x), length.out=colsteps)) ] ) } x <- c((1:100)^2, (100:1)^2) plot(x,col=color.gradient(x), pch=19,cex=2) 

在这里输入图像描述

上面的答案是有用的,但在图表中,很难区分黑色的较暗的梯度。 我find的一个替代方法是使用如下渐变的灰色

 palette(gray.colors(10, 0.9, 0.4)) plot(rep(1,10),col=1:10,pch=19,cex=3)) 

更多信息在这里的灰度。

添加

当我将上面的代码用于蓝色和黑色等不同的颜色时,渐变效果并不明显。 heat.colors()似乎更有用。

这个文件有更详细的信息和选项。 PDF格式