- R语言有强大的绘图功能,但是如果没有合适的颜色搭配会非常难看,所以学习颜色配置很重要。
- 在这篇文章中我多次用到
show_col()
函数, 来自scales
包,功能是用方格简单粗暴地展示颜色
颜色的表示方式
rgb、hsv、hcl
只讲述第一种(rgb函数),另外两种我不太熟悉
##eg.黑色
b1<- rgb(1,1,1) ##注意这里的rgb数值range定在[0,1]
b2<- rgb(255,255,255, maxColorValue = 255)
> args(rgb)
function (red, green, blue, alpha, names = NULL, maxColorValue = 1)
16进制
以##开始,接着3对16进制数,每一对分别代表Red, green, blue
##FFFFFF 代表 黑色, ##000000代表白色
颜色名称
直接输入颜色名称字符串,如”red”, “green” ,R语言中有600+的颜色,如要查看所有的颜色名称,可以直接用
colors()
函数
> colorsinr<- colors()
> head(colorsinr)
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1" "antiquewhite2"
[6] "antiquewhite3"
library(scales)
show_col(head(colorsinr))
颜色数据集RColorBrewer
> library(RColorBrewer)
> brewer.pal.info ##该包所包含的所有颜色集,配合下文图片阅读
maxcolors category colorblind
BrBG 11 div TRUE
PiYG 11 div TRUE
PRGn 11 div TRUE
PuOr 11 div TRUE
RdBu 11 div TRUE
RdGy 11 div FALSE
RdYlBu 11 div TRUE
RdYlGn 11 div FALSE
Spectral 11 div FALSE
Accent 8 qual FALSE
Dark2 8 qual TRUE
Paired 12 qual TRUE
Pastel1 9 qual FALSE
Pastel2 8 qual FALSE
Set1 9 qual FALSE
Set2 8 qual TRUE
Set3 12 qual FALSE
Blues 9 seq TRUE
BuGn 9 seq TRUE
BuPu 9 seq TRUE
GnBu 9 seq TRUE
Greens 9 seq TRUE
Greys 9 seq TRUE
Oranges 9 seq TRUE
OrRd 9 seq TRUE
PuBu 9 seq TRUE
PuBuGn 9 seq TRUE
PuRd 9 seq TRUE
Purples 9 seq TRUE
RdPu 9 seq TRUE
Reds 9 seq TRUE
YlGn 9 seq TRUE
YlGnBu 9 seq TRUE
YlOrBr 9 seq TRUE
YlOrRd 9 seq TRUE
> display.brewer.all()
brewer.pal(n, name)
##RColorBrewer的具体使用
> mycolors<- brewer.pal(9,"PiYG")
> show_col(mycolors)
生成颜色的函数
R语言的颜色函数基本概念如下(纯属个人理解总结):
1. 先生成一个调色板(palette),然后根据用户所需的颜色数,在调色板内等间隔读取颜色来获取数据
内置渐变色板
用法都是输入想要获取的颜色个数,输出相应的颜色。
show_col(rainbow(9))
show_col(heat.colors(9))
show_col(terrain.colors(9))
show_col(topo.colors(9))
show_col(cm.colors(9))
show_col(gray(c(0:8)/8))
自定义渐变色板 colorRampPalette()
用法:1.输入调色板的主要颜色,返回函数
2.在函数中输入想要获取的颜色数量,返回颜色数值
> mypalette<- colorRampPalette(c("red" , "green"))
> mycolors<- mypalette(12)
> show_col(mycolors)
还可以设置多个主要颜色
> mypalette<- colorRampPalette(c("red" ,"white" ,"green"))
> mycolors<- mypalette(12)
> show_col(mycolors)