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

news2024/11/25 20:24:47

看到 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 × 3
  package  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 × 5
  package 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 × 5
   package 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.coloradmin.cn/o/2228469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么看AI大模型(LLM)、智能体(Agent)、知识库、向量数据库、知识图谱,RAG,AGI 的不同形态?

前言 在 AI 人工智能时代&#xff0c;智能体将会是未来最主流的大模型应用方式&#xff1f;人人都有机会通过智能体&#xff0c;解锁成为【超级个体】。 在人工智能的快速发展中&#xff0c;LLM、Agent、知识库、向量数据库、RAG&#xff08;检索增强生成&#xff09;、知识图…

照片不完整?来试试智能扩图,简直不要太满意!(不是广告)

生活中有些照片拍过之后&#xff0c;当时觉得很满意&#xff0c;但过段时间就恨当初没有拍一张完整的图片&#xff01; ——来自小白的感慨 当时跟家里的叮当一起去旅游&#xff0c;我给他拍了一张好看的照片&#xff1a; 今天这张照片如果是整图就好了&#xff01;好气哦&am…

idea连接数据库出现错误的解决方式

在使用idea连接数据库时&#xff0c;出现错误&#xff1a; The server has terminated the handshake. The protocol list option (enabledTLSProtocols) is set, this option might cause connection issues with some versions of MySQL. Consider removing the protocol li…

1. STM32环境搭建

1. MDK5(keil) 安装 安装包获取&#xff0c;可以在官网下载 https://www.keil.com/demo/eval/arm.htm 或者通过其他方式获取&#xff0c;下载 下载完有一个安装包和 “钥匙”&#xff0c;解压时关闭杀毒软件&#xff0c;防止被清理掉 1.1 安装 软件安装位置选择&#xff1a;…

map的oj题

第一题 . - 力扣&#xff08;LeetCode&#xff09; 第二题 单词识别_牛客题霸_牛客网 解题思路&#xff1a; 1&#xff0c;将数据放入set或者map中去重和更新次数, 即利用set和map的[ ] 2. 将数据放到vector 进行排序 &#xff0c;还应该利用仿函数写出 Compare() ,因为s…

Android13预置应用及授权开发

在android13中&#xff0c;要预置一个对讲应用&#xff0c;从预置和授权&#xff0c;梳理了一下&#xff0c;以便后续查询使用。在此记录 一放置应用 我的apk应用放在vendor下面&#xff0c; 路径&#xff1a;projectroot/vendor/fly/package/apps/DMR/flydmr.apk (vendor/fl…

【深度学习中的注意力机制9】11种主流注意力机制112个创新研究paper+代码——滑动窗口注意力(Sliding Window Attention)

【深度学习中的注意力机制9】11种主流注意力机制112个创新研究paper代码——滑动窗口注意力&#xff08;Sliding Window Attention&#xff09; 【深度学习中的注意力机制9】11种主流注意力机制112个创新研究paper代码——滑动窗口注意力&#xff08;Sliding Window Attention…

RK3568平台(PWM篇)红外遥控适配

一.红外遥控简介 红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外 接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送 后置放大器。 鉴于家用电器的品种多样化和用户的使用特点,生产厂家对进行…

【Linux初阶】指令操作

上一篇文章&#xff08;⭐点这里⭐⭐点这里&#xff09;我们初步对Linux有了一些基本的认识&#xff0c;了解到了Windows的图形化界面操作和Linux的纯命令指令是操作上二者最大的区别&#xff0c;今天我们来继续深入的学习Linux的操作指令&#xff0c;学习一些基本的指令来控制…

跨平台开发支付组件,实现支付宝支付

效果图&#xff1a; custom-payment &#xff1a; 在生成预付订单之后页面中需要弹出一个弹层&#xff0c;弹层中展示的内容为支付方式&#xff08;渠道&#xff09;&#xff0c;由用户选择一种支付方式进行支付。 该弹层组件是以扩展组件 uni-popup 为核心的&#xff0c;关于…

MFC图形函数学习04——画矩形函数

MFC中绘制矩形函数是MFC的基本绘图函数&#xff0c;它的大小和位置由左上角和右下角的坐标决定&#xff1b;若想绘制的矩形边框线型、线宽、颜色以及填充颜色都还需要其它函数的配合。 一、绘制矩形函数 原型&#xff1a;BOOL Rectangle(int x1,int y1,int x2,int y2); …

【网络面试篇】TCP连接建立(笔记)

目录 一、三次握手 1. 过程描述 2. 为什么是三次握手&#xff1f;不是两次、四次&#xff1f; &#xff08;1&#xff09;三次握手才可以阻止重复历史连接的初始化 &#xff08;2&#xff09;三次握手才可以同步双方的初始序列号 &#xff08;3&#xff09;三次握手才可以…

04.DDD与CQRS

学习视频来源&#xff1a;DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 定义职责分离DDD与CQRS的关系领域模型和查询模型特点命令场景的领域模型查询场景的查询模型 架构方案领域事件方案1&#xff1a…

树莓派全网最全安装测试(包括系统,显示器,灯,舵机灯测试)

1.下载ubuntu https://cdimage.ubuntu.com/releases/20.04.5/release/ 2.格式化和烧录镜像源 3.修改自己的wifl sd卡直接放回树莓派 4.IP地址 https://www.bilibili.com/video/BV1YD421H7zF/?buvidXU5DB1750D0CD69E8D83AEE359EB6582A7396&is_story_h5false&midMJB9z…

LabVIEW涡扇发动机加力泵测试

LabVIEW软件开发的涡扇发动机加力泵测试平台采用高度集成的硬件设备&#xff0c;实现了对涡扇发动机加力泵的全面测试和分析&#xff0c;从而确保其性能满足严格的航空标准。 项目背景 涡扇发动机是现代飞机的重要动力来源之一&#xff0c;其加力泵的性能直接影响飞机的整体动…

车载中控系统的UI自动化测试实践

本文主要介绍了如何在车载中控系统中实施UI自动化测试的过程&#xff0c;从测试环境的准备到测试用例的设计&#xff0c;再到具体实现方法及注意事项等方面进行了详细的阐述。 引言 随着汽车行业的快速发展&#xff0c;车载中控系统已成为提升驾驶体验的重要组成部分。为了保…

echarts属性之dataZoom

dataZoom-slider 滑动条型数据区域缩放组件&#xff08;dataZoomInside&#xff09; 滑动条型数据区域缩放组件提供了数据缩略图显示&#xff0c;缩放&#xff0c;刷选&#xff0c;拖拽&#xff0c;点击快速定位等数据筛选的功能。下图显示了该组件可交互部分 所有属性 data…

牛客小白月赛103(打表、二进制、几何、思维)

文章目录 牛客小白月赛103&#xff08;打表、二进制、几何、思维&#xff09;A. 小冰的正多边形B. 冰冰的电子邮箱C. 冰冰的异或&#xff08;打表、二进制&#xff09;D. 冰冰的分界线&#xff08;几何、浮点数处理&#xff09;E. 冰冰的 GCD(调和级数、思维) 据说F是假题&…

「C/C++」C++17 之 std::variant 安全的联合体(变体)

#1024程序员节&#xff5c;征文# ✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计…

Web3的去中心化社交网络:区块链技术如何改变互动方式

随着互联网技术的不断进步&#xff0c;社交网络正在经历一场深刻的变革。Web3&#xff0c;作为新一代互联网技术的代表&#xff0c;正通过区块链和去中心化理念改变着我们与他人互动的方式。传统的社交网络通常由大型公司控制&#xff0c;用户数据的集中化管理和隐私问题备受关…