ggplot2绘图系统配色入门
ggplot2绘图系统是目前主流绘图系统,有众多的配色R包支持,绘制出来的图形优雅漂亮,在前面我们也介绍过很多ggplot2图形的配色用法。
我们今天就来总结下ggplot2图形系统的一些配色方法及调色R包。
1. 创建数据集
创建个简单数据集。
library(tidyverse)
exports_data <- tibble(
year = c(2006,2006,2007,2007,2008,2008,2009,2009),
product = c("copper","others","copper","others","copper","others","copper","others"),
export = c(29,19,23,14,30,20,26,30))
head(exports_data)
2. 绘制个简单的ggplot2图形
绘制个简单图形。
exports_data %>%
filter(product == "copper") %>%
ggplot(aes(x = year, y = export)) +
geom_col() +
theme_bw(base_size = 20)
这个是条形图的基础绘制,可以在其基础上指定图形的颜色。
3. 指定颜色色值
可以通过color、fill等参数指定条形图的颜色。
color参数指定条形的边框颜色,fill参数指定条形的填充颜色,size参数在这里指定条形边框的粗细。
exports_data %>%
filter(product == "copper") %>%
ggplot(aes(x = year, y = export)) +
geom_col(fill = "#1ee3cf", color = "black", size = 1.1) +
theme_bw(base_size = 20)
直接指定颜色色值需要选取一些好的颜色才行,太过鲜艳的颜色会显得刺眼,这里推荐两个选取颜色的网址:
https://colordrop.io/ https://flatuicolors.com/
更多颜色的选取可以参考这篇推文。
4. 映射变量
除了指定色值外,还可以映射变量给fill参数或color参数来设置条形图的颜色。
ggplot(data = exports_data, aes(x = year, y = export, fill = product)) +
geom_col() +
theme_bw(base_size = 20)
上述是默认的条形图颜色,可以指定scale_fill_manual()来修改,这里的fill与前面代码中的fill要对应,如果前面是color参数,则需要使用scale_color_manual()修改。
ggplot(data = exports_data, aes(x = year, y = export, fill = product)) +
geom_col() +
scale_fill_manual(values = c("#E1B378","#5F9EA0")) +
theme_bw(base_size = 20)
5. 使用调色板
使用调色板是比较简单、方便的修改颜色方法,这里介绍几个不错的R包。
5.1 灰色调色板
跟传统绘图系统一样,ggplot2包也可以使用灰阶调色板。灰度调色板适合黑白打印。
p <- ggplot(data = exports_data, aes(x = year, y = export, fill = product)) +
geom_col() + # 绘制条形图
theme_bw(base_size = 20) # 设置主题及主题基本字体大小
p + scale_fill_grey() # 灰色调色板
可以调整scale_fill_grey()中的start和end参数来调整灰色调色板中灰色的最小值和最大值,默认0.2和0.8。数值选取范围是0~1(其中0对应黑色,1对应白色)。
p + scale_fill_grey(start = 0.4, end = 0.7)
5.2 ColorBrewer 包调色板
RColorBrewer 包提供了3 套配色方案,分别为连续型、极端型以及离散型。
可以使用下面的代码查看ColorBrewer包具体的调色板名称。
library(RColorBrewer)
display.brewer.all()
比如说使用Set2调色板。
p + scale_fill_brewer(palette = "Set2")
或者Set1调色板。
p + scale_fill_brewer(palette = "Set1")
ColorBrewer 包其他的调色板可以自行探索。
5.3 ggsci 包调色板
ggsci包是ggplot2图形系统比较出名的一个配色R包了。
这个包的配色种类很多,可以查看官方文件,或者下面这篇推文:ggsci-按照杂志要求进行文章图片配色。
library(ggsci)
p + scale_fill_aaas()
p + scale_fill_npg()
如果觉得上面的颜色过于鲜艳,可以调整调色板颜色的透明度alpha参数。
p + scale_fill_aaas(alpha = 0.8)
5.4 viridis 包调色板
viridis 包调色板选取的是matplotlib 中默认的色带。使用此包中的色带来制作漂亮的图表,可以更好地展示数据,更容易被具有色盲的人阅读,并支持灰度打印。
library(viridis)
p + scale_fill_viridis(option = "viridis", discrete = TRUE)
p + scale_fill_viridis(option = "turbo", discrete = TRUE)
同样可以使用alpha调整颜色的透明度,使用direction参数反转调色板颜色。
p + scale_fill_viridis(option = "turbo", discrete = TRUE,
alpha = 0.8, direction = -1)
ggplot2图形系统的调色板还有很多,有兴趣的可以自行学习。
本公众号更多的图形配色文章如下:
参考资料来自R数据可视化手册以及各R包帮助文件。
点个在看,SCI马上发表。