n种颜色的渐变,范围从颜色1和颜色2

Tyl*_*ker 94 gradient r

我经常使用ggplot2它使渐变很好(点击此处查看示例).我需要在基地工作,我认为scales可以在那里使用来创建颜色渐变,但我严重偏离了如何.基本目标是生成n种颜色的调色板,范围从x颜色到y颜色.解决方案需要在基础上工作.这是一个起点,但没有地方输入n.

 scale_colour_gradientn(colours=c("red", "blue"))
Run Code Online (Sandbox Code Playgroud)

我很清楚:

brewer.pal(8, "Spectral") 
Run Code Online (Sandbox Code Playgroud)

来自RColorBrewer.我正在寻找更类似于ggplot2处理渐变的方法,这些渐变表示我有这两种颜色,我想要沿途有15种颜色.我怎样才能做到这一点?

the*_*ail 162

colorRampPalette 可能是你的朋友:

colfunc <- colorRampPalette(c("black", "white"))
colfunc(10)
# [1] "#000000" "#1C1C1C" "#383838" "#555555" "#717171" "#8D8D8D" "#AAAAAA"
# [8] "#C6C6C6" "#E2E2E2" "#FFFFFF"
Run Code Online (Sandbox Code Playgroud)

只是为了表明它有效:

plot(rep(1,10),col=colfunc(10),pch=19,cex=3)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 请注意,如果您特别迷恋预先存在的调色板,例如`brewer.pal(8,"Spectral")`,您可以将生成的颜色矢量提供给`colorRampPalette`,以沿着该渐变生成更多颜色.例如:`colorRampPalette(brewer.pal(8,"Spectral"))`. (13认同)

小智 48

只是为了扩展上一个答案colorRampPalette可以处理两种以上的颜色.

因此,对于更加扩展的"热图"类型,你可以......

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

结果图像:

在此输入图像描述

  • 添加给不希望看到“springgreen”或“royalblue”之类选项的其他人。所有可用的颜色都可以通过运行:colors() 作为列表返回。 (2认同)

Dan*_*oop 15

请尝试以下方法:

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Anu*_*sha 7

上述答案很有用,但在图表中,很难区分黑色的较暗渐变.我发现的另一种方法是使用灰色渐变,如下所示

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

关于灰度的更多信息.

添加

当我将上面的代码用于不同颜色(如蓝色和黑色)时,渐变并不那么清晰. heat.colors()似乎更有用.

本文档包含更详细的信息和选项.PDF格式

  • 我认为这个答案对于黑色到白色是优越的,但不能泛化为颜色.感谢您添加这些有价值的信息.+1 (2认同)
  • @DavidDelMonte - http://web.archive.org/web/20141111182737/http://www.stat.tamu.edu/~jkim/Rcolorstyle.pdf首先检查archive.org. (2认同)