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


108

我经常使用ggplot2它来使渐变更好(请单击此处查看示例)。我需要在基础上工作,我认为scales也可以在其中使用它来创建颜色渐变,但是我对如何做到这一点很不满意。基本目标是生成n种颜色的调色板,范围从x颜色到y颜色。该解决方案需要在基础上工作。这是一个起点,但是没有输入n的位置。

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

我很清楚:

brewer.pal(8, "Spectral") 

来自RColorBrewer。我在寻找更多类似于ggplot2处理渐变的方法,该方法表示我有这两种颜色,并且一路上需要15种颜色。我怎样才能做到这一点?


1
我认为您需要包装;最新的ggplot2版本依赖此作为基础代码。也就是说,您不需要ggplot2来使用刻度,只需要使用scales软件包即可。不知道尺度函数是如何工作的:-)
Gavin Simpson 2012年

1
脱离主题是因为您base特别要求,但我发现colourvalues也在CRAN上)将值映射到渐变特别方便。它也很轻巧(取决于Rcpp)。
MichaelChirico

@MichaelChirico没什么大不了的,我的意思是我需要使用基本绘图,因为我使用的软件包是在基本(我认为是wordcloud)而不是网格中编写的。也许发布作为答案?
泰勒·林克

Answers:


179

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)

在此处输入图片说明


14
请注意,如果您特别喜欢预先存在的调色板,例如brewer.pal(8, "Spectral"),您可以将所得的颜色向量赋予,colorRampPalette以沿该斜坡生成更多颜色。例如:colorRampPalette(brewer.pal(8, "Spectral"))
jbaums 2014年

块中带有对角线或形状的颜色呢?@thelatemail
user3631848 '16

50

仅扩展上一个答案colorRampPalette就可以处理两种以上的颜色。

因此,对于更扩展的“热图”类型,您可以...

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

结果图像:

在此处输入图片说明


我还可以在颜色中指定对角线或形状吗?@jsol
user3631848 '16

我喜欢这个调色板,但是绿色太多,黄色很少。有没有办法纠正这个问题?
Herman Toothrot's

1
为不希望看到诸如“ springgreen”或“ royalblue”之类的选项的其他人添加。通过运行以下命令,可以将所有可用的颜色作为列表返回:colors()。
jadki

20

请尝试以下操作:

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)

在此处输入图片说明


此功能应作为R base的默认添加!
Simon C.

7

上面的答案很有用,但在图形中,很难区分黑色的较深渐变。我发现的一种替代方法是使用灰色渐变,如下所示

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

有关灰度的更多信息,请点击此处。

添加

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

本文档包含更多详细信息和选项。pdf格式


2
我认为这个答案对于黑到白来说是更好的,但不能泛化为颜色。感谢您添加此宝贵信息。+1
泰勒·林克

添加了一个链接,该链接提供了适用于颜色和黑白的更好的颜色渐变和色相选项。
Anusha 2014年

@DavidDelMonte我可能正在保存文件副本,但没有更新的链接。虽然不确定在哪里上传。
Anusha 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.