前篇介绍的RColorBrewer包是R常用的配色拓展包,而R系统自带的配色方案则由grDevices工具包提供。

由于grDevices工具包中的配色函数较多,我们分多篇推文进行介绍,本篇介绍的函数有如下几个:

  • colors()

  • rgb()

  • col2rgb()

  • grey()

  • grey.colors()

2 grDevices工具包

colors()

R系统中内置657种颜色,这些颜色在使用时直接调用颜色名称即可,如redbluegreenlightbluedarkgreengrey等。

使用colors()函数(或者colours()函数)可以查看所有内置颜色名称:

head(colors()) # 仅显示前6种
## [1] "white"         "aliceblue"     "antiquewhite"  "antiquewhite1"
## [5] "antiquewhite2" "antiquewhite3"
image(x = 1:3, y = 1, z = matrix(1:3, ncol = 1),col = c("blue", "white", "red"),axes = F, ann = F)

下图展示了内置颜色名称及其对应的效果:

rgb()

rgb()函数是根据三原色原理进行配色的,即大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生;同样,绝大多数单色光也可以分解成红、绿、蓝三种色光,这是色度学的最基本的原理(来自百度百科)。

rgb()函数的语法结构如下:

rgb(red, green, blue,alpha, names = NULL,maxColorValue = 1)
  • red、green、blue:三原色参数;

  • alpha:半透明参数;数值越小,透明度越高;

  • names:对颜色进行命名,可省略;

  • maxColorValue:三原色参数和半透明参数的最大值,默认为1,即redgreenbluealpha四个参数的取值范围为0-1。

  • 大部分调色软件对三原色的默认设置范围是[0, 255],即maxColorValue = 255

r <- seq(7, 255, 8)
col <- rgb(r, 0, 0, alpha = 255,maxColorValue = 255)
image(x = 1:8, y = 1:4, z = matrix(1:32, ncol = 4),col = col,axes = F, ann = F)

使用rgb()函数生成具有一定透明度的颜色,若颜色重叠还可以生成新的颜色,而内置颜色则会出现覆盖。

theta <- seq(0, 2*pi, 0.001)
x <- sin(theta)
y <- cos(theta)par(plt = c(0.05, 0.95, 0.05, 0.95))
plot(1, type = "n", ann = F, axes = F,xlim = c(-1, 2), ylim = c(-1, 2),asp = 1)
polypath(x, y, col = rgb(1,0,0,0.2), border = NA)
polypath(x+1, y, col = rgb(0,1,0,0.2), border = NA)
polypath(x+0.5, y+0.866, col = rgb(0,0,1,0.2), border = NA)

rgb()函数生成的颜色还可以使用十六进制表示,即分别将[0, 255]范围内的三原色参数和半透明参数依次转换成十六进制的表达形式(半透明参数可以省略),并在前面加上#,如红色的十六进制编码为#FF0000

rgb(1,0,0,0.2)
## [1] "#FF000033"

许多网站都可以查询颜色的RGB编码和十六进制编码的对照表。

col2rgb()

通过col2rgb()函数,我们可以查询内置颜色的RGB编码,或将十六进制编码转换成RGB编码:

col2rgb(col, alpha = FALSE)
  • col:内置颜色名称或颜色的十六进制编码。

col2rgb("skyblue")
##       [,1]
## red    135
## green  206
## blue   235col2rgb("#FF000033")
##       [,1]
## red    255
## green    0
## blue     0

grey()

使用rgb()函数生成的颜色在黑白打印时几乎无法辨别,针对这种情况,可以使用grey()函数(或 gray()函数)生成灰度颜色。语法结构如下:

grey(level, alpha = NULL)
  • level:灰度水平,取值在0-1之间;0表示黑色,1表示白色。

lev <- seq(0, 0.99, 0.2)
col <- grey(lev)
image(x = 1:5, y = 1, z = matrix(1:5, ncol = 1),col = col,axes = F, ann = F)

grey.colors()

grey.colors()函数的功能是快速生成一组连续水平的灰度颜色,语法结构如下:

gray.colors(n, start = 0.3, end = 0.9,gamma = 2.2, alpha = NULL,rev = FALSE)
  • n:颜色个数;

  • start、end:灰度水平的起始和终止值,同grey()函数的level参数。

par(mfrow = c(1,2))
barplot(1:12)
barplot(1:12, col = gray.colors(12))

grDevices | R语言中的配色方法汇总(Ⅱ-1)相关推荐

  1. grDevices | R语言中的配色方法汇总(Ⅱ-2)

    上篇主要介绍了RGB模型和灰度模型两种配色方案,本篇来继续介绍HSV模型和HCL模型. 根据色彩理论,色彩具有三要素,即色相.饱和度和明度,HSV模型和HCL模型均是基于该理论的配色方案. 同上篇一样 ...

  2. RColorBrewer | R语言中的配色方法汇总(Ⅰ)

    1 RColorBrewer工具包 该包是R中常用的颜色选取工具包,它具有简单易用的特点,对于不具备太多色彩理论的读者来说也十分友好.虽然该包主要是为地图上色而设计,但也可以用于其他用途. libra ...

  3. r语言算巢式设计方差分析_R语言中的方差分析方法汇总

    方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...

  4. R语言中dim函数_R语言中的方差分析方法汇总

    方差分析,是统计中的基础分析方法,也是我们在分析数据时经常使用的方法.下面我总结一下R语言如何对常用的方差分析进行操作. 1. 方差分析的假定 上面这个思维导图,也可以看出,方差分析有三大假定:正态, ...

  5. R语言中的抽样方法与描述统计函数

    抽样方法 常见的抽样方法 简单随机抽样 分层抽样 系统抽样 # 导入数据 # 1 金融 2 建筑 3 外语 data <- read.csv("E:\\Github\\code-lea ...

  6. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  7. raster | R语言中的空间栅格对象及其基本处理方法(Ⅰ)

    前面的系列推文已经完成了对R语言中的两个管理空间矢量数据的工具包(sf和sp)的介绍,以及空间自相关.空间插值等空间分析方法. 这里小编再推出一个系列来介绍R语言中管理空间栅格数据的工具包:raste ...

  8. R语言中读取xlsx文件的方法

    R语言中读取xlsx文件的方法 安装包 install.packages("openxlsx") library(openxlsx) 文件名+sheet的序号 data<- ...

  9. R语言中的基础作图和ggplot2配色系统

    文章目录 颜色代码大全 R语言中的调色板 RColorBrewer提供的调色盘 R语言中配色介绍 R语言中自带的调色板 RColorBrewer包提供更多的调色板 ggplot2中配色系统的介绍 数值 ...

最新文章

  1. 笔记本电脑怎么清理灰尘_用了这么多年电脑,你该清理清理这个,将会又快又流畅...
  2. 百度输入法发布AI版本10.0,重磅推出“AI助聊”功能
  3. 高速缓存系统之memcache c++使用实例
  4. 集体备课模板_幼儿教师资格证面试试讲万能模板和历年真题,看完轻松过面试!...
  5. nodejs mysql 注入_node.js sql 注入攻击防御方法 (sql Injection)
  6. get online 免费注册一级.online后缀的域名
  7. HTML5八大特性助力移动WebApp开发
  8. Swift 与众不同的地方
  9. 刘宏伟计算机组成,哈工大组成原理和数据结构 ppt 计算机组成原理刘宏伟 版本一 第18讲...
  10. Twitter开源软件项目列表
  11. LINUX进程内存占用查看
  12. Amobea读写分离
  13. Python-图像-伪彩色图像处理
  14. vue---vue+elementUI完成注册及登陆
  15. Openwrt 镜像安装
  16. android 怎么绘制圆形,Android编程绘制圆形图片的方法
  17. gzip 压缩解压代码示例
  18. c#中 .length和length()的差别
  19. OSG 球体参数方程绘制
  20. 一个老的游戏,据说全世界只有不到4000人可以走出房间,--之“碧绿色房间”...

热门文章

  1. vCenter如何逃离Windows的坑(转)
  2. ESXi 内存分配原理
  3. 性能测试--【MySQL】Sysbench 性能压测
  4. VSAN常见故障2018-11-06
  5. Java基础学习总结(74)——Java常见笔试题及答案汇总
  6. php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分
  7. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...
  8. Dockerfile最佳实践
  9. vscode下的好用插件收集
  10. ng-zorro-antd引入less时错误解决记录