R语言 | paletteer包:拥有2100多个调色板!

news/2024/10/28 14:48:24/

看到 PMID:39024031 文章的代码中,有颜色设置的语句:

pal <- paletteer_d("ggsci::category20_d3")[c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)]DimPlot(MM,reduction = 'umap',group.by = "sample",label = F,pt.size = 0.1,cols = pal)+ labs(title = 'Samples',size= 60)+  theme_bw(base_size = 14) +theme(panel.grid = element_blank(),axis.ticks = element_blank(),aspect.ratio = 1,strip.background = element_rect(colour = NA,fill = NA),axis.text = element_blank(),plot.title = element_text(hjust = 0.5))DimPlot(MM,reduction = 'umap',group.by = "sample",split.by = "sample",label = F,pt.size = 0.1,cols = pal,ncol = 5)& labs(title = 'Samples',size= 60)&  theme_bw(base_size = 14) &theme(panel.grid = element_blank(),axis.ticks = element_blank(),aspect.ratio = 1,strip.background = element_rect(colour = NA,fill = NA),axis.text = element_blank(),plot.title = element_text(hjust = 0.5))
pal <- paletteer_d("ggsci::nrc_npg")[c(1,2,3,4,5,6,7,8,9,10)]
pal <- paletteer_d("ggsci::category20c_d3")[c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)]
pal <- paletteer_d("ggsci::default_igv")[c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51)]
pal <- paletteer_d("ggsci::category20c_d3")[c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)]
为什么不写成 1:20的形式呢?

搜索发现,这是paletteer包的函数。

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

  • https://r-charts.com/color-palettes/ 查看这些调色板。

快速查看 颜色效果:
scales::show_col( paletteer_d("ggsci::nrc_npg")[1:8] )
# #E64B35FF #4DBBD5FF #00A087FF #3C5488FF #F39B7FFF #8491B4FF #91D1C2FF #DC0000FF
在这里插入图片描述


scales::show_col( paletteer_d("ggsci::default_igv")[1:51] )
# #5050FFFF #CE3D32FF #749B58FF #F0E685FF #466983FF #BA6338FF #5DB1DDFF #802268FF #6BD76BFF #D595A7FF #924822FF #837B8DFF #C75127FF #D58F5CFF #7A65A5FF #E4AF69FF #3B1B53FF #CDDEB7FF #612A79FF #AE1F63FF #E7C76FFF #5A655EFF #CC9900FF #99CC00FF #A9A9A9FF #CC9900FF #99CC00FF #33CC00FF #00CC33FF #00CC99FF #0099CCFF #0A47FFFF #4775FFFF #FFC20AFF #FFD147FF #990033FF #991A00FF #996600FF #809900FF #339900FF #00991AFF #009966FF #008099FF #003399FF #1A0099FF #660099FF #990080FF #D60047FF #FF1463FF #00D68FFF #14FFB1FF
在这里插入图片描述

1. 安装

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

2. 直接获取颜色

paletteer包也将各种配色方案分成3类:CONTINUOUS、DISCRETE与DYNAMIC

(1) 连续型颜色(300多个)

> palettes_c_names|>dim()
[1] 319   3
> palettes_c_names|> head(n=2)
# A tibble: 2 × 3package  palette               type      <chr>    <chr>                 <chr>     
1 ggthemes Blue-Green Sequential sequential
2 ggthemes Blue Light            sequential

调用函数:paletteer_c(),在括号里加入包的名称与颜色集即可,注意需要设置过渡颜色数量 n

paletteer_c("ggthemes::Blue-Green Sequential", 30)
# 需要安装ggthemes包

在这里插入图片描述

(2) 离散型颜色(2k多个)

> palettes_d_names |> dim()
[1] 2415    5
> palettes_d_names |> head(n=3)
# A tibble: 3 × 5package palette   length type        novelty<chr>   <chr>      <int> <chr>       <lgl>  
1 awtools a_palette      8 sequential  TRUE   
2 awtools ppalette       8 qualitative TRUE   
3 awtools bpalette      16 qualitative TRUE   

调用函数:paletteer_d(),在括号里加入包的名称与颜色集即可。不添加颜色数量 n 默认输出组内全部颜色编码。

例1:

barplot( rep(1, 8), col=paletteer_d("awtools::ppalette")[1:8], border=NA, space=0.2, axes=F)

在这里插入图片描述


例2:

> palettes_d_names[grep("sci",palettes_d_names$package), ]
# A tibble: 49 × 5package palette           length type        novelty<chr>   <chr>              <int> <chr>       <lgl>  1 ggsci   nrc_npg               10 qualitative TRUE   2 ggsci   default_aaas          10 qualitative TRUE   3 ggsci   default_nejm           8 qualitative TRUE   4 ggsci   lanonc_lancet          9 qualitative TRUE   5 ggsci   default_jama           7 qualitative TRUE > paletteer_d("ggsci::nrc_npg")

在这里插入图片描述

(3) 动态颜色集(25个)

> palettes_dynamic_names |> dim()
[1] 25  4
> palettes_dynamic_names |> head(n=3)package    palette length       type
1 cartography   blue.pal     20 sequential
2 cartography orange.pal     20 sequential
3 cartography    red.pal     20 sequential

调用函数:paletteer_dynamic(),除了在括号里加入包的名称与颜色集,也必须设置输出颜色数量 n,否则报错

paletteer_dynamic("cartography::blue.pal", 20)

在这里插入图片描述

3. 在ggplot2中使用 scale_ 系列函数

与ggsci包类似,paletteer包不仅可以使用paletteer_c(),paletteer_d(),paletteer_dynamic()函数提取具体颜色编码;也可以使用比例尺(scales)函数直接取代ggplot2原有scales函数。

#scale_color_paletteer_d()
#scale_fill_paletteer_d()#scale_color_paletteer_c()
#scale_fill_paletteer_c()

示例:

p1=ggplot(data = iris, aes(x = Species,y = Sepal.Length)) +geom_violin(aes(fill = Species),alpha = 0.75, color="white") +theme_classic()+scale_fill_paletteer_d("ggsci::nrc_npg") +#scale_fill_manual(values = as.character(paletteer_d("ggsci::nrc_npg")[1:8])) + ggtitle("scale_fill_paletteer_d('ggsci::nrc_npg')")p2=ggplot(data = iris, aes(x = Species,y = Sepal.Length)) +geom_violin(aes(fill = Species),alpha = 0.75, color="white") +theme_classic()+#scale_fill_paletteer_d("ggsci::nrc_npg") +scale_fill_manual(values = as.character(paletteer_d("ggsci::nrc_npg")[1:8])) + ggtitle('as.character(paletteer_d("ggsci::nrc_npg")[1:8])')
p1 + p2

在这里插入图片描述

例2:

ggplot(data = iris, aes(x = Species,y = Sepal.Length)) +geom_violin(aes(fill = Species),alpha = 0.75, color="white") +theme_classic()+scale_fill_manual(values = as.character(paletteer_d("awtools::ppalette")[1:8]))

在这里插入图片描述

Ref

  • https://cloud.tencent.com/developer/article/1839444
  • https://zhuanlan.zhihu.com/p/705236221

http://www.ppmy.cn/news/1542608.html

相关文章

小知识点的回顾

1.在正式测试前,对产品或系统的一次简单的验证性测试称为: 验收测试、集成测试、冒烟测试、负载测试(冒烟。不通过就没法测)(验收在软件产品完成了功能和非功能测试后,以用户的角度来验证软件是否满足业务需求和合同规定的要求。集成测试关注模块之间的接口,单元测试后。…

太速科技-217-A(B)-Base Camera link 转光纤传输双向模块

A&#xff08;B&#xff09;-Base Camera link 转光纤传输双向模块 一、板卡概述 本板卡为1路Cameralink图像数据转为1路光纤接口的数据转换板。具备1路Camera-Link&#xff08;BASE&#xff09;图像输入端口&#xff0c; 1路单芯单模光纤通道输出接口。或者1路光纤输入…

Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解

Python Numpy 实现神经网络自动训练&#xff1a;反向传播与激活函数的应用详解 这篇文章介绍了如何使用 Python 的 Numpy 库来实现神经网络的自动训练&#xff0c;重点展示了反向传播算法和激活函数的应用。反向传播是神经网络训练的核心&#xff0c;能够通过计算梯度来优化模…

IDEA初探:深入理解 Structure 功能

一、Structure - 类视图 Structure 是 IDEA 中的一个视图工具&#xff0c;它提供了对当前文件中结构元素的快速访问。通过 Structure&#xff0c;我们可以方便地查看和导航到代码中的各个部分&#xff0c;从而提高代码编辑和浏览的效率。 1.1 基本概念 Structure 视图以树形结…

Python Pandas 数据分析的得力工具:简介

Python Pandas 数据分析的得力工具&#xff1a;简介 在如今的大数据与人工智能时代&#xff0c;数据的收集和处理能力变得至关重要。无论是在科学研究、商业分析还是人工智能领域&#xff0c;如何快速、高效地分析和处理数据都是不可忽视的课题。在众多的数据分析工具中&#…

【PHP】ThinkPHP获取请求的域名及前缀

目录 1. 获取请求的域名 2. 获取请求的完整 URL 3. 获取请求的根 URL 4. 获取请求的前缀 5.示例代码 解释 注意事项 在 ThinkPHP 中&#xff0c;您可以通过 Request 对象来获取请求的域名及前缀。以下是一些常用的方法&#xff1a; 1. 获取请求的域名 $domain $this-…

【C++奇遇记】C++中的基础知识(缺省参数,函数重载,引用)

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集 数据库专栏 初阶数据结构 &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如…

代码编辑组件

代码编辑组件 文章说明核心代码运行演示源码下载 文章说明 拖了很久&#xff0c;总算是自己写了一个简单的代码编辑组件&#xff0c;虽然还有不少的bug&#xff0c;真的很难写&#xff0c;在写的过程中感觉自己的前端技术根本不够用&#xff0c;好像总是方案不够好&#xff1b;…