在程序中的颜色指定一般有三种形式:
- 使用颜色的名称进行指定,比如 “red”,"blue"等。
- 使用带井号的16进制数字表示,比如"#000000"等。
- 使用RGB的三位元组形式表示,比如(1.0,0.0,0.0)等。
但是这些颜色指定的方式有其局限性,使用极其不方便,所以一般的高级语言,都会为我们提供封装好的颜色包,方便我们的使用,本文尝试对R语言中用到的颜色管理包进行整理,如果有其不到位的地方,欢迎大家进行批评指正。
1. 打印全部颜色
colors() 函数可以返回R中收录的全部颜色,可以利用切片的方式选择自己需要的染色
Colors()[1:5]
# “white”,”aliceblue”,”antiquewhite”,”antiquewhite1”,”antiquewhite2”
2. 彩虹色
rainbow()函数返回指定数量的连续变化的彩虹色,参数是需要输出颜色的数量值
rainbow(10) # 输出10种不同的颜色
3. 颜色调色板
brewer.pal() 函数提供不同风格的颜色输出,参数包括需要的颜色数,风格类型,其中类型包括:Accent,Dark2,Paired,Pastel1,Pastel2,Set1,Set2,Set3等
library(RColorBrewer)
mycolors <- brewer.pal(n,"Set1")
4. sci颜色包
ggsci颜色包基于ggplot2,提供了重要期刊的配色方案,是本文重点推荐的颜色包
library(ggsci)
library(ggplot2)
vignette("ggsci") #帮助文档中列出了16种重要期刊的配色方案。
'''
2.1 NPG # nature配色
2.2 AAAS # science配色
2.3 NEJM
2.4 Lancet # 柳叶刀配色
2.5 JAMA
2.6 JCO # Journal of Clinical Oncology配色
......
'''
# 利用scale_color_palname()和scale_fill_palname()函数进行使用,如下:
p = ggplot()...
p = p+scale_color_npg()+scale_fill_npg() # 选择方案名称替换palname即可。
# 如果需要提取具体的颜色值,都可以通过以下方式进行:
?scale_color_aaas
'''
Description
See pal_aaas for details.
Usage
scale_color_aaas(palette = c("default"), alpha = 1, ...) # 发现其颜色方案名称为 “default”
......
'''
pal_aaas("default",1)(8) # 提取出8个颜色值,其中1表示不透明度。
5. 渐变颜色
colorRampPalette函数可以返回渐变颜色,参数是向量或者两个颜色值
colorRampPalette(c('blue','white','red'))(30) # 提取了30个颜色值
# 同时因为其参数形式,可以对以上的颜色进行拓展,
col4<-colorRampPalette(brewer.pal(8,'Set2'))(56)#将RColorBrewer包中的Set2方案8个颜色扩展为56个
col5<-colorRampPalette((pal_aaas("default")(9)))(56)#将ggsci包中的AAAS方案9个颜色扩展为56个
通过以上的几个包,我们确信R 绘图中的颜色选择和使用,已经不是问题了,恭喜大家向着科研成功的道路又迈进了一步!