R语言配色方案: Colors in R

前言:巧妙的色彩搭配,能够绘制出更具审美价值的图片,令人耳目一新。
本文主要讲解比较受欢迎的R包配色方案。

(一):RColorBrewer 包

调色板有3种类型:连续型调色板、离散型调色板和定性调色板。

连续型调色板,适用于从低到高(渐变)的有序数据。
Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu YlOrBr, YlOrRd
离散型调色板,同时强调中端临界值和数据范围两端的极端值。
BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral
定性调色板,适用于名义型或分类型变量。 它们并不代表组之间的大小差异。
Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

rm(list = ls())
install.packages("RColorBrewer")
library(RColorBrewer)
# 绘制 RColorBrewer 调色板
display.brewer.all()
head(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
R语言配色方案: Colors in R_第1张图片
图片.png

绘图应用[1]

# 通过指定名字来查看调色板
display.brewer.pal(n = 8, name = 'RdBu')
# 十六进制颜色规格
brewer.pal(n = 8, name = "RdBu")
[1] "#B2182B" "#D6604D" "#F4A582" "#FDDBC7" "#D1E5F0" "#92C5DE" "#4393C3" "#2166AC"
# RColorBrewer绘制条形图
barplot(c(2,5,7), col=brewer.pal(n = 3, name = "RdBu"))
R语言配色方案: Colors in R_第2张图片
图片.png
R语言配色方案: Colors in R_第3张图片
Rplot02.png

(二):Wes Anderson包

Wes Anderson,电影导演韦斯·安德森,善于运用色彩。
最欣赏的一点是他以色调和对称构图来讲述惟妙惟肖的故事情节,而不是使用过多复杂花哨的拍摄方式诠释自己的才能。[1]

install.packages("wesanderson")
library(wesanderson)
# See all palettes
names(wes_palettes)
[1] "BottleRocket1"  "BottleRocket2"  "Rushmore1"      "Rushmore"       "Royal1"        
[6] "Royal2"         "Zissou1"        "Darjeeling1"    "Darjeeling2"    "Chevalier1"    
[11] "FantasticFox1"  "Moonrise1"      "Moonrise2"      "Moonrise3"      "Cavalcanti1"   
[16] "GrandBudapest1" "GrandBudapest2" "IsleofDogs1"    "IsleofDogs2" 

绘图应用[2]

barplot(c(2,5,7), col = wes_palette(n=3, name="GrandBudapest1")) # 此处英文有误
library(ggplot2)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
  geom_point(size = 2) + 
  scale_color_manual(values = wes_palette(n=3, name="GrandBudapest1"))
R语言配色方案: Colors in R_第4张图片
Rplot03.png

R语言配色方案: Colors in R_第5张图片
Rplot04.png

(三):创建n个连续颜色的向量

可以使用函数rainbow(n), heat.colors(n), terrain.colors(n), topo.colors(n)和cm.colors(n)生成n个连续颜色的向量
绘图应用[3]

#Create a vector of n contiguous colors
# Use rainbow colors
barplot(1:5, col=rainbow(5))
# Use heat.colors
barplot(1:5, col=heat.colors(5))
# Use terrain.colors
barplot(1:5, col=terrain.colors(5))
# Use topo.colors
barplot(1:5, col=topo.colors(5))
# Use cm.colors
barplot(1:5, col=cm.colors(5))
  • R语言配色方案: Colors in R_第6张图片
    Rplot06.png

(四):产生渐变颜色colorRamp()和colorRampPalette()[2]

colorRamp()和colorRampPalette()都可用于建立颜色板。想象一下你现在有一个色板,色板上有红色,蓝色,和白色,你就可以用colorRamp()和colorRampPalette()基于这三个颜色就行调色,两者的不同在于,colorRamp() 可以指定一个小数,返回一个指定的颜色值,需要用rgb方法转换;
colorRampPalette()返回指定数量的颜色值,两个方法可以达到相同的效果:

绘图应用[4]

par(mfrow = c(1, 2))
b2p1 <- colorRampPalette(c("red", "white","blue"))
b2p2 <- colorRamp(c("red", "white","blue"))
barplot(rep(1, 12), axes=F, col = b2p1(12), border = b2p1(12), 
        main = "colorRampPalette")

rgb( b2p2(seq(0, 1, length = 12)), max = 255)
barplot(rep(1, 12), axes=F,col = rgb( b2p2(seq(0, 1, length = 12)), max = 255),
        border = rgb( b2p2(seq(0, 1, length = 12)), max = 255), main = "colorRamp")
  • R语言配色方案: Colors in R_第7张图片
    Rplot05.png

参考资料:


  1. Wes Anderson's Colour Palettes - 从电影中寻找配色灵感 | Lucca ↩

  2. R语言中的颜色以及色板 ↩

你可能感兴趣的:(R语言配色方案: Colors in R)