前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言中的颜色(三)-grDevice包

R语言中的颜色(三)-grDevice包

作者头像
生信交流平台
发布2022-09-21 17:19:28
5090
发布2022-09-21 17:19:28
举报

前面给大家介绍了

1.R语言中的颜色(一)-自带的调色板

2.R语言中的颜色(二)-gplots包

今天小编再来跟大家聊聊R中的另一个跟颜色相关色的R包grDevice

这个R包提供两个颜色相关的函数

  • colorRamp()
  • colorRampPalrttr()

colorRamp()和colorRampPalette()都可用于建立调色板。通过传入希望得到颜色渐变,如蓝、紫,colorRamp()和colorRampPalette都会返回一个函数。二者返回的函数区别为:colorRamp()返回的函数像grey()一样,输入的参数为[0,1]之间的数列,数列中数字个数即为函数返回的色彩数。返回的是RGB颜色值,例如,(0,0,255)表示是蓝色。

colorRampPalette()返回的参数则像rainbow()一样,输入的参数为希望返回的色彩的数量。返回的是Hex(十六进制)颜色值,例如#0000FF表示蓝色。

下面我们举个具体的例子来看一下

代码语言:javascript
复制
#一行两列,摆放两张图
par(mfrow = c(1, 2))
#利用colorRampPalette生成颜色函数b2p1
b2p1 <- colorRampPalette(c("blue", "purple"))
#利用colorRamp生成颜色函数b2p2
b2p2 <- colorRamp(c("blue", "purple"))
#利用b2p1生成12个颜色,由蓝到紫,绘制第一个饼图
pie(rep(1, 12),  col = b2p1(12), border = b2p1(12), main = "colorRampPalette")

#利用b2p2生成12个颜色,由蓝到紫,返回的是RGB值
#利用rgb函数将RGB值转换成hex值
col=apply(b2p2(seq(0, 1, len = 12)),1,function(x){
    rgb(x[1],x[2],x[3],maxColorValue = 255)
})
#绘制第二个饼图
pie(rep(1, 12),  col = col, border = col, main = "colorRamp")

可以看到结果是一致的

我们单独把这两种方法得到的颜色拉出来看一下,colorRampPalette这种方法得到的函数,返回的颜色就是十六进制的颜色

colorRamp这种方法得到的函数,返回的是RGB值,这个如果直接传给col来绘图的话,画出来的图颜色会是错的。感兴趣的小伙伴可以自己试一下。

通过rgb函数转换之后的值就跟colorRampPalette方法得到的一致了

今天的分享就先到这里,敬请期待下一期内容!

参考资料:

1.R语言中的颜色(一)-自带的调色板

2.R语言中的颜色(二)-gplots包

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档