首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从颜色1到颜色2的n种颜色的渐变

从颜色1到颜色2的n种颜色的渐变
EN

Stack Overflow用户
提问于 2012-11-13 07:16:53
回答 4查看 149.6K关注 0票数 114

我经常使用让渐变变得更好的ggplot2 (click here for an example)。我需要在base中工作,我认为scales也可以在那里创建颜色渐变,但我严重偏离了如何创建颜色渐变的标记。基本目标是生成从x色到y色的n种颜色的调色板。不过,解决方案需要在base中工作。这是一个起点,但没有地方输入n。

代码语言:javascript
复制
 scale_colour_gradientn(colours=c("red", "blue"))

我很清楚:

代码语言:javascript
复制
brewer.pal(8, "Spectral") 

来自RColorBrewer。我更多的是寻找类似于ggplot2处理渐变的方法,即我有这两种颜色,我想要15种颜色。我该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-13 07:21:54

在这里,colorRampPalette可以成为你的朋友:

代码语言:javascript
复制
colfunc <- colorRampPalette(c("black", "white"))
colfunc(10)
# [1] "#000000" "#1C1C1C" "#383838" "#555555" "#717171" "#8D8D8D" "#AAAAAA"
# [8] "#C6C6C6" "#E2E2E2" "#FFFFFF"

为了证明它是有效的:

代码语言:javascript
复制
plot(rep(1,10),col=colfunc(10),pch=19,cex=3)

票数 194
EN

Stack Overflow用户

发布于 2015-05-29 23:41:18

仅对上一个答案进行扩展,colorRampPalette可以处理两种以上的颜色。

因此,要获得更多扩展的“热图”类型,您可以...

代码语言:javascript
复制
colfunc<-colorRampPalette(c("red","yellow","springgreen","royalblue"))
plot(rep(1,50),col=(colfunc(50)), pch=19,cex=2)

生成的图像:

票数 54
EN

Stack Overflow用户

发布于 2016-02-27 00:04:10

尝试以下操作:

代码语言:javascript
复制
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)

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13353213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档