从颜色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格式