查看原文
其他

最强配色R包,1个包,2100来个调色板!

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

首先今天推荐一个分享R语言干货的优质公众号——小明的数据分析笔记本

公众号主要分享:
1、R语言和python做数据分析和数据可视化的简单小例子;
2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;
3、生物信息学入门学习资料及自己的学习笔记!


ggplot2是目前主流的绘图R包,有着丰富的扩展包。今天来推荐一个极其强大的配色R包——paletteer包。

据R包作者介绍,这个包收集了52个R包2100种调色板,R用户可以通过paletteer包来直接调用其他R包的调色板。

下面来学习下怎么使用这个R包。

1. 安装和加载R包

安装可以直接从CRAN上安装。

install.packages("paletteer")
library(paletteer)  

2. 探索paletteer包

在使用paletteer包绘制图形前先看看paletteer包的调色板情况。

2.1 离散型调色板

palettes_d_name是一个包含了R包和离散型调色板的数据集。

d_palettes <- palettes_d_names
d_palettes

可以看到数据集共有1788行,包含4个变量,分别表示R包、调色板、调色板中的颜色数量、调色板类型等。

2.2 连续型调色板

palettes_c_name是一个包含了R包和连续型调色板的数据集。

c_palettes <- palettes_c_names 
c_palettes

可以看到数据集共有315行,包含3个变量,分别表示R包、调色板、调色板类型等。

3. paletteer包的用法

3.1 主要函数

paletteer包使用起来很简单,包中有4个主要的函数。

函数用法:

# 离散型调色板
scale_color_paletteer_d(palette, direction = 1, dynamic = FALSE...)
scale_fill_paletteer_d(palette, direction = 1, dynamic = FALSE...)

# 连续型调色板
scale_color_paletteer_c(palette, direction = 1...)
scale_fill_paletteer_c(palette, direction = 1...)

scale_color_paletteer_binned(palette, direction = 1...)
scale_fill_paletteer_binned(palette, direction = 1...)

palette #  调色板名称的字符串,格式必须是packagename::palettename
direction # 取值为1或-1,为-1则逆转调色板的颜色

3.2 查看调色板具体颜色

我们可以查看每个调色板的具体颜色。

paletteer_c("scico::berlin"10)
paletteer_d("nord::frost")
paletteer_d("wesanderson::Royal1"4)
paletteer_d("Redmonder::dPBIPuOr"10, type = "continuous")
pal <- paletteer_d("basetheme::clean")
pal %>%  
  fct_inorder() %>%  
  tibble(pal = .) %>%  
  gt::gt() %>%  
  gt::data_color(columns = vars(pal),  
                 colors = as.character(pal))

4. paletteer包实战

paletteer包主要用于ggplot2图形,所以我们绘制ggplot2图形来进行演示。

4.1 离散型调色板

先绘制个基础的条形图。

library(ggplot2)
base_d <- ggplot(mpg, aes(class, fill = drv)) +
  geom_bar() 
base_d

ggsci包是一个很优秀的调色板,我们可以在paletteer包中使用ggsci包的调色板。

base_d + scale_fill_paletteer_d("ggsci::default_nejm")
# 调色板可以自动补全名称

下面再绘制个散点图看看。

library(gcookbook) # 为了使用数据集
base_c <- ggplot(heightweight, aes(ageYear, heightIn, colour=sex)) + 
  geom_point(size = 3.5)
base_c
base_c + scale_color_paletteer_d("basetheme::ink")
base_c + scale_color_paletteer_d("LaCroixColoR::Orange")

4.2 连续型调色板

先绘制个散点图。

ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + 
  geom_point(size = 3.5) + 
  scale_color_paletteer_c("ggthemes::Red-Gold")
ggplot(mtcars, aes(x=wt, y=mpg, colour=cyl)) + 
  geom_point(size = 3.5) + 
  scale_color_paletteer_c("ggthemes::Classic Area Green")

参考资料

  1. paletteer包帮助文件
  2. https://evamaerey.github.io/ggplot2_grammar_guide/paletteer.html#1

《完》


既往专辑


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

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