library(RColorBrewer)
display.brewer.all(type = "all") #查看所有颜色板
R语言配色方案(教程篇)
前言
最常用的R语言配色方案主要有2个包,RColorBrewer和ggsci,下面我们来分别介绍一下这两个包,并在ggplot绘图中学会应用他们。
RColorBrewer包
获取此包里所有颜色方案
可以看出,这个包里面的配色方案,主要分为三种,
离散型颜色(离散型)
单种颜色渐变色(连续型)
两种颜色就渐变色(连续型)
选取其中的一个颜色方案,获取16进制颜色编码,并展示它们
可以通过brewer.pal()函数获取指定颜色方案的16进制颜色编码,这样我们就可以在之后的绘图中手动挑选自己喜欢的颜色了。
= brewer.pal(9, "BuGn")
tempColors ::show_col(tempColors,labels=T) scales
在ggplot2中使用颜色方案
在ggplot2中使用RColorBrewer包的颜色方案可以通过scale_fill_brewer()
和scale_color_brewer()
函数来实现。
对于离散型颜色,可以使用scale_*_brewer()函数来添加填充颜色。例如,要将一个离散型变量的不同水平用RColorBrewer包中的”Set1”配色方案进行填充,可以使用以下代码:
library(ggplot2)
library(RColorBrewer)
= ggplot(subset(diamonds, carat >= 2.2),
p aes(x = table, y = price, colour = cut)) +
geom_point(alpha = 0.7) +
geom_smooth(method = "loess", alpha = 0.05, size = 1, span = 1) +
theme_bw()
# 修改颜色
+ scale_color_brewer(palette = "Set1") p
这样,散点图的每个点会根据离散型变量的不同水平使用”Set1”配色方案进行填充。
对于连续型颜色,可以使用scale_*_distiller()
函数来添加线条或点的颜色。例如,要根据一个连续型变量的值使用RColorBrewer包中的”Blues”配色方案来设置点的颜色,可以使用以下代码:
library(ggplot2)
library(RColorBrewer)
# 创建一个示例数据集
<- data.frame(x = 1:10,
data y = 1:10,
z = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
# 绘制散点图,并使用RColorBrewer包的"Spectral"配色方案来设置点的颜色
ggplot(data, aes(x = x, y = y, color = z)) +
geom_point(size = 5) +
scale_color_distiller(palette = "Spectral")
这样,散点图中的每个点会根据连续型变量的值使用”Spectral”配色方案进行着色。
ggsci包
ggplot2颜色拓展包ggsci,收集了若干种知名期刊的颜色方案。
学习使用
可以通过下面函数,打开自带的说明书,介绍的非常详细
有各种配色方案和使用说明
vignette("ggsci")
篇幅有限,只把最核心的2种函数简单介绍下
pal_*()获取16进制编码颜色,
library(ggsci)
pal_npg("nrc")(10)
[1] "#E64B35FF" "#4DBBD5FF" "#00A087FF" "#3C5488FF" "#F39B7FFF" "#8491B4FF"
[7] "#91D1C2FF" "#DC0000FF" "#7E6148FF" "#B09C85FF"
scale_color_lancet() 在ggplot2中应用配色方案
+ scale_color_jama() p
附录
自定义颜色
- 离散型 scale_*_manual()函数
library(ggplot2)
<- data.frame(x = 1:5,
data y = 1:5,
category = c("A", "B", "C", "D", "E"))
# 绘制散点图,并自定义离散型变量的颜色映射
ggplot(data, aes(x = x, y = y, color = category)) +
geom_point(size = 5) +
scale_colour_manual(values = c("A" = "red", "B" = "blue", "C" = "green", "D" = "orange", "E" = "purple"))
- 连续性scale_*_gradient()系列函数
library(ggplot2)
library(RColorBrewer)
<- data.frame(x = 1:10,
data y = 1:10,
z = 1:10)
# 绘制散点图,并使用渐变色来设置连续型变量的填充颜色
ggplot(data, aes(x = x, y = y, fill = z)) +
geom_tile() +
scale_fill_gradientn(colors = brewer.pal(3, "Blues"))
更多R包
- viridis:这个包提供了一组感知均匀的连续配色方案,适合于连续变量的可视化。
另外推荐个截屏软件,Snipaste,有取色器的功能,可以将屏幕上的颜色取下来