查看原文
其他

ggplot2绘图系统配色入门

段湘杰 R语言统计与绘图 2023-03-03

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)

直接指定颜色色值需要选取一些好的颜色才行,太过鲜艳的颜色会显得刺眼,这里推荐两个选取颜色的网址:

  1. https://colordrop.io/
  2. https://flatuicolors.com/

更多颜色的选取可以参考这篇推文。

推荐几个R数据可视化用的配色网站

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包,1个包,2100来个调色板!

ggplot2图形配色包,提取知名科技公司的主题颜色

ggplot2图形常见的几种配色方法

参考资料来自R数据可视化手册以及各R包帮助文件。


关注下方公众号,分享更多更好玩的R语言知识。
​​

点个在看,SCI马上发表。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存