相信各位在肝图表写论文时,一定都会思考:这张图表用啥颜色?论文整体配色搭配怎么把控才好看?
毕竟高分期刊大牛文章的共通点,除了论文精彩,整体配色也十分具有吸引力。
许多在线配色/提取颜色的工具效果不错,通过下载大牛文章使用PS、AI等直接“偷色”也不是难事。如今即便自己缺少美学灵感,但仍可以做到轻松获取出彩的配色方案。有兴趣可参考往期推文: 《作图颜色调得好,高分文章跑不了!》 、 《如何“偷走”大牛文章漂亮的配色?》
但上述方法可能不适用所有情景(特别是R绘图时)。只需要少量颜色的情况还好,直接通过十六进制颜色码自定义配色即可,做到好看十分简单。
但当绘制一些如堆叠图、桑基图等的多分组图表时,当你需要自定义十几种甚至更多颜色时(如下图),在找配色上就会花费非常多的时间,根据数据的不同,有些需要渐变配色(容易一点),有些则需要离散配色(这个最难),不太适合懒人。
( ISME ,2021)
因此,今天给大家介绍四个能轻松获取高分科学期刊同款配色方案的R包,并讲述如何基于这四个配色包,生成任意所需数量的超好看配色。当然,也能提取出配色方案,“反向”运用于Origin、AI、Excel等其它软件图形的绘制。
# 1. ggsci #
此包是基于ggplot2的颜色主题包,内置的配色方案都为各类科学期刊、科幻电影常用配色。由于篇幅受限,这里仅展示部分常用科学期刊配色,剩余大家自行查看帮助文档。
#相关包的安装和载入
install.packages('ggsci')
library(ggsci)
library(ggplot2)
#查看此包帮助文档(共提供18种配色方案,点击名称即可跳转到对应配色说明及案例)
vignette( "ggsci")
#提取配色的通用函数(palname替换为配色方案名称即可,详见帮助文档)
#scale_color_palname
#scale_fill_palname
#使用R内置数据集创建箱线图作为本次范例:
data(singer,package= "lattice")
p<-ggplot(singer,aes(x=voice.part,y=height,fill=voice.part,color=voice.part,alpha=0.8))+geom_boxplot
p<-p+theme_bw+coord_fixed(ratio=0.25)
#使用Nature配色(NPG)
p2<-p+scale_color_npg+scale_fill_npg
p2
#使用Science配色(AAAS)
p3<-p+scale_color_aaas+scale_fill_aaas
p3
#使用柳叶刀配色(Lancet)
p5<-p+scale_color_lancet+scale_fill_lancet
p5
#使用Journal of Clinical Oncology配色(JCO)
p6<-p+scale_color_jco+scale_fill_jco
p6
那么如何将心仪的颜色提取出来呢?不同的配色方案本质就是不同十六进制颜色码向量的集合。但ggsci包有些特殊,颜色向量集的名称并不和帮助文档中所给的对应配色方案名称对应,因此需要多一步自行查找。
#查看选中配色方案的帮助文档 (以Nature的配色NPG为例)
library( "scales")
? scale_color_npg
查看NPG的帮助文档可发现,此配色方案包含共10种颜色,颜色向量集名称为“nrc”,可以调整透明度。
#可选择提取≤10种颜色,但可通过调节透明度产出不同明度的配色方案
mycolor<-pal_npg( "nrc", alpha = 0.5)(8) #提取8种颜色,透明度80%
mycolor
show_col(mycolor)
ggsci包中其余配色方案也可通过此方法来获取十六进制颜色码,大家可根据需要直接复制颜色码或者保存配色图片。
# 2. RColorBrewer #
这个包的使用频率也非常高,上一周推文 《如何绘制Science文章的“花式”河流图?》 中就使用它进行配色。
#RColorBrewer包的安装和载入
install.packages('RColorBrewer')
library(RColorBrewer)
#查看帮助文档
? RColorBrewer
#查看全部配色方案
display.brewer. all
#作者将上述配色方案分为了三类(从上至下):连续型(sequential)、离散型(Qualitative)、极端型(Diverging),可适用于不同类型的分类变量(非常方便!),以下代码可分别进行查看
display.brewer. all(type= "seq")
display.brewer. all(type= "qual")
display.brewer. all(type= "div")
#使用Spectral配色方案
mycolor2<-brewer.pal(11, "Spectral")#可选择的颜色数量区间在此配色最大数和绘图所需数之间
p7<-p+scale_fill_manual(values=rev(mycolor2))+
scale_color_manual(values=rev(mycolor2))
p7
#使用YlOrRd配色方案
mycolor3<-brewer.pal(9, "YlOrRd")
p8<-p+scale_fill_manual(values=rev(mycolor3))+
scale_color_manual(values=rev(mycolor3))
p8
RColorBrewer包可直接提取配色,颜色集合的名称和配色方案名称相同。
#提取所需配色的十六进制颜色
brewer.pal(9, "YlOrRd")
show_col(mycolor3)
两个包的基础用法就介绍到这。此外,文首提到的常见情况——分类变量非常多的情况怎么办?上述R包里每种方案所包含的颜色数量似乎也就10来种,似乎不够用?
#方法一:
使用colorRampPalette扩展上述R包颜色
#这个函数的基本用法:基于指定的颜色向量,生成指定数量的渐变颜色
col3<-colorRampPalette(c('blue','white','red'))(30)
show_col(col3)
#使用colorRampPalette扩展R包配色方案中的颜色
col4<-colorRampPalette(brewer.pal(8,'Set2'))(56)#将RColorBrewer包中的Set2方案8个颜色扩展为56个
col5<-colorRampPalette((pal_npg( "nrc")(9)))(56)#将ggsci包中的NPG方案9个颜色扩展为56个
show_col(col4)
show_col(col5)
当然,你也可以通过从配色包中提取出心仪的十六进制颜色码,去任意指定自己所需颜色,这里不再展示。
#方法二:
使用paletteer包
朋友们,如果上述方法还不能满足你的要求,那就用用看paletteer!这个包中共收录了52个R包中的2,100种配色方案,都可直接调用,出现“配色荒”算我输!
#paletteer包的安装、调用、查看帮助文档
install.packages( "paletteer")
library(paletteer)
? paletteer
Paletteer包中针对不同数据类型(连续型、离散型),存在两种调用函数,详见下文:
1.连续型配色方案:和colorRampPalette函数类似,可以基于选定的配色主题扩展出任意所需数量颜色。
#生成连续型配色方案(基于选定的配色主题拓展出所需任意数量的颜色):
c_palettes<- palettes_c_names#查看所有配色
我们可以看到,连续型配色方案中共有330种方案,每个方案都可以生成指定数量颜色~
#引号处配色名称可直接Tab键浏览选取,也可以直接输入,格式为:R包名称::配色方案名称
paletteer_c( "gameofthrones::targaryen", n = 40)
paletteer_c( "gameofthrones::arya", n = 15)
paletteer_c( "pals::ocean.matter", n = 25)
我们任意盲挑几种搭配,生成不同数量的颜色,如下图,十六进制颜色码都叠加在对应颜色上,我们在挑配色时就太方便啦(当然也可以生成色卡直接导出,见前文,这里不赘述)!
2.离散型配色方案:虽然每种配色方案依然有最大颜色数限制,但架不住收纳的配色主题多啊(共有2,037种配色方案)!从几种,到十几种、二三十种、上百种颜色的配色方案都完美囊括。
#生成离散型配色方案:
d_palettes<- palettes_d_names#查看所有配色 ,共计2037种配色方案
paletteer_d( "ggthemes::Classic_20",n=20) #随机选一个查看
#将随机选取的Classic_20配色方案运用于箱线图示例:
mycol<-paletteer_d( "ggthemes::Classic_20",n=20)
p9<-p+scale_fill_manual(values=rev(mycol))+
scale_color_manual(values=rev(mycol))
p9
真的随便乱挑出来的配色都好好看!
#方法三:
使用colorpicker包
paletteer还不满足,看来是时候展现真正的技术,自己手动丰衣足食了!
R语言的难点之一就是啥都要敲代码,搞得上个色都那么艰难。但是,colorpicker为我们提供了一个交互式颜色获取面板,让你能够体验“非R”的轻松愉快(简单来说,你可以不用敲代码直接点点点快速获取颜色)。
#colorpicker包的安装、调用
install.packages( "colourpicker")
library(colourpicker)
col_colourpicker<-#先设置需要赋值的颜色名,鼠标选择在Addins处选择colourpicker
然后会出来一个交互式面板(像是在用别的软件了呢),如下:
在Any colour面板,你可以点击“+”任意添加所需颜色数量,在“Select any colour”处任意挑选颜色,或者直接输入十六进制颜色码,如下图。
在Find R colour面板,你可以任意选择一个颜色,并生成一组40个颜色以内的相近色搭配色板,根据需要点击颜色将其添加到“Selected colours”处。
最后,在All R colour面板提供了好看的配色库可自行挑选添加,在完成颜色选择后,我们点击右上角的Done即可输出十六进制颜色码或者颜色名称。
col_map<-c( "#E07979", "#801212", "#EDB4B4", "#4169E1", "#6CA6CD", "#48D1CC", "#FFC0CB", "#96CDCD")
对于想自行控制配色的人来说,简直太方便啦!
上述方法都能够快速生成任意所需数量的科学期刊配色方案!根据自己的需求选择适合自己的方法吧!今天的分享就到这里
https://colorbrewer2.org/
R语言生信绘图配色(GGSCI包)--SCI论文配色
对于我这条使用R语言来绘图的生信🐕而言,最令我绝望的便是关于配色的问题,很多时候自己选的颜色看上去会特别生硬,就算使用colorRampPalette产生渐变色也感觉不够理想。无意间,我看到了“ggsci”这个包,它完全就是为了SCI配色而设计的,下面我将挑选一些重要的函数来讲解,详细的内容可以去看官网的说明。
这些是帮助页面中的函数以及简短的介绍:
pal_aaas AAAS Journal Color Palettes
pal_d3 D3.js Color Palettes
pal_futurama The Futurama Color Palettes
pal_gsea The GSEA GenePattern Color Palettes
pal_igv Integrative Genomics Viewer (IGV) Color Palettes
pal_jama Journal of the American Medical Association Color Palettes
pal_jco Journal of Clinical Oncology Color Palettes
pal_lancet Lancet Journal Color Palettes
pal_locuszoom LocusZoom Color Palette
pal_material Material Design Color Palettes
pal_nejm NEJM Color Palettes
pal_npg NPG Journal Color Palettes
pal_rickandmorty Rick and Morty Color Palettes
pal_simpsons The Simpsons Color Palettes
pal_startrek Star Trek Color Palettes
pal_tron Tron Legacy Color Palettes
pal_uchicago The University of Chicago Color Palettes
pal_ucscgb UCSC Genome Browser Color Palette
rgb_gsea The GSEA GenePattern Color Palettes
rgb_material Material Design Color Palettes
scale_color_aaas AAAS Journal Color Scales
scale_color_d3 D3.js Color Scales
scale_color_futurama The Futurama Color Scales
scale_color_gsea The GSEA GenePattern Color Scales
scale_color_igv Integrative Genomics Viewer (IGV) Color Scales
scale_color_jama Journal of the American Medical Association Color Scales
scale_color_jco Journal of Clinical Oncology Color Scales
scale_color_lancet Lancet Journal Color Scales
scale_color_locuszoom LocusZoom Color Scales
scale_color_material Material Design Color Palettes
scale_color_nejm NEJM Color Scales
scale_color_npg NPG Journal Color Scales
scale_color_rickandmorty Rick and Morty Color Scales
scale_color_simpsons The Simpsons Color Scales
scale_color_startrek Star Trek Color Scales
scale_color_tron Tron Legacy Color Scales
scale_color_uchicago The University of Chicago Color Scales
scale_color_ucscgb UCSC Genome Browser Color Scales
scale_colour_aaas AAAS Journal Color Scales
scale_colour_d3 D3.js Color Scales
scale_colour_futurama The Futurama Color Scales
scale_colour_gsea The GSEA GenePattern Color Scales
scale_colour_igv Integrative Genomics Viewer (IGV) Color Scales
scale_colour_jama Journal of the American Medical Association Color Scales
scale_colour_jco Journal of Clinical Oncology Color Scales
scale_colour_lancet Lancet Journal Color Scales
scale_colour_locuszoom LocusZoom Color Scales
scale_colour_material Material Design Color Palettes
scale_colour_nejm NEJM Color Scales
scale_colour_npg NPG Journal Color Scales
scale_colour_rickandmorty Rick and Morty Color Scales
scale_colour_simpsons The Simpsons Color Scales
scale_colour_startrek Star Trek Color Scales
scale_colour_tron Tron Legacy Color Scales
scale_colour_uchicago The University of Chicago Color Scales
scale_colour_ucscgb UCSC Genome Browser Color Scales
scale_fill_aaas AAAS Journal Color Scales
scale_fill_d3 D3.js Color Scales
scale_fill_futurama The Futurama Color Scales
scale_fill_gsea The GSEA GenePattern Color Scales
scale_fill_igv Integrative Genomics Viewer (IGV) Color Scales
scale_fill_jama Journal of the American Medical Association Color Scales
scale_fill_jco Journal of Clinical Oncology Color Scales
scale_fill_lancet Lancet Journal Color Scales
scale_fill_locuszoom LocusZoom Color Scales
scale_fill_material Material Design Color Palettes
scale_fill_nejm NEJM Color Scales
scale_fill_npg NPG Journal Color Scales
scale_fill_rickandmorty Rick and Morty Color Scales
scale_fill_simpsons The Simpsons Color Scales
scale_fill_startrek Star Trek Color Scales
scale_fill_tron Tron Legacy Color Scales
scale_fill_uchicago The University of Chicago Color Scales
scale_fill_ucscgb UCSC Genome Browser Color Scales
根据说明书我们可以简单的将它们分成三类:pal,rgb,scale,前两个可以生成不同的颜色组,scale可以直接用与ggplot中。
pal的调用都是一个模板,其中只有两个参数:
palette的default默认参数(只用7个基础色),alpha代表透明度,取值在(0,1)间,越大越透明.
在pal后面加上(6)代表只产生6个颜色。
pal_aaas(palette=c("default"),alpha=1)(6)
1
上面是pal_aaas的一个例子,若想查看具体是哪一些颜色可以使用“scales”包来实现:
library("scales")
library("ggsci")
show_col(pal_aaas("default")(7)) #图一
show_col(pal_aaas("default", alpha = 0.6)(7)) #图二
show_col(pal_aaas("default", alpha = 0.2)(4)) #图三
图一至图三:
以上是pal颜色的介绍,它的配色方案采用的是很多论文中的技巧,例如Integrative Genomics Viewer (IGV)的配色,Lancet Journal (柳叶刀)的配色,Journal of Clinical Oncology的配色等等,可以按照需求利用这些配色方案来完成绘图任务。
在ggsci包中,只有rgb_gsea和rgb_material这两个基于RGB色彩模式的函数【红、绿、蓝】,但是它们的用法还是有一些差别:
rgb_gsea(palette = c("default"), n = 12, alpha = 1, reverse = FALSE)
rgb_material(palette = c("red", "pink", "purple", "deep-purple", "indigo",
"blue", "light-blue", "cyan", "teal", "green", "light-green", "lime",
"yellow", "amber", "orange", "deep-orange", "brown", "grey", "blue-grey"),
n = 10, alpha = 1, reverse = FALSE)
参数详解:
n:产生多少个独立的颜色
alpha:透明度
reverse:逻辑值,决定颜色的排序是否反序
palette:在rgb_material中有19种配色方案
实例:
library("scales")
show_col(pal_material("indigo")(10))
show_col(pal_material("indigo", n = 20, alpha = 0.6, reverse = TRUE)(13))
个人感觉scale函数是整个“ggsci”包中最简单和常用的包,只需要在ggplot后面+上看中的scale颜色方案,即可完成配色,下面是一些实例的使用,分别是基于柳叶刀的配色方案(scale_fill_lancet()),基于GSEA(scale_fill_gsea())和基于Integrative Genomics Viewer (IGV)的配色方案( scale_fill_igv())
library("ggplot2")
data("diamonds")
ggplot(subset(diamonds, carat > 2.2 & depth > 55 & depth < 70),
aes(x = depth, fill = cut)) +
geom_histogram(colour = "black", binwidth = 1, position = "dodge") +
theme_bw() + scale_fill_lancet()
library("ggplot2")
library("reshape2")
data("mtcars")
cor = cor(mtcars)
cor_melt = melt(cor)
ggplot(cor_melt,
aes(x = Var1, y = Var2, fill = value)) +
geom_tile(colour = "black", size = 0.3) +
theme_bw() + scale_fill_gsea()
library("ggplot2")
data("diamonds")
p = ggplot(subset(diamonds, carat > 2.2 & depth > 55 & depth < 70),
aes(x = depth, fill = cut)) +
geom_histogram(colour = "black", binwidth = 1, position = "dodge") +
theme_bw()
p + scale_fill_igv()
以上便是ggsci包的简介,希望对每一个学习生信的人都有所帮助,我这里也会不断把学习中遇到的问题和经验发上来,希望志同道合的朋友能和我多多讨论,一起学习。
ggsci的官网地址:https://nanx.me/ggsci/articles/ggsci.html#discrete-color-palettes
1. 简介
ggsci是一款优秀的ggplot2的配色包,包含了常见杂志的配色,比如lancet,jco,jama,nejm等,主要通过以下2句代码进行配色:
scale_folor_palname
scale_fill_palname
所有的配色方案如下表格所示:
2.离散型配色
先准备2个图形,使用原始配色。
rm(list = ls())
library("ggsci")
library("ggplot2")
## Warning: package 'ggplot2' was built under R
## version 4.0.5
library("gridExtra")
data("diamonds")
p1 = ggplot(subset(diamonds, carat >= 2.2),
aes(x = table, y = price, colour = cut)) +
geom_point(alpha = 0.7) +
geom_smooth(method = "loess", alpha = 0.05, size = 1, span = 1) +
theme_bw()
p2 = ggplot(subset(diamonds, carat > 2.2 & depth > 55 & depth < 70),
aes(x = depth, fill = cut)) +
geom_histogram(colour = "black", binwidth = 1, position = "dodge") +
theme_bw()
grid.arrange(p1, p2, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## AAAS配色方案
p1_aaas = p1 + scale_color_aaas()
p2_aaas = p2 + scale_fill_aaas()
grid.arrange(p1_aaas, p2_aaas, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## nejm配色
p1_nejm = p1 + scale_color_nejm()
p2_nejm = p2 + scale_fill_nejm()
grid.arrange(p1_nejm, p2_nejm, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## lancet
p1_lancet = p1 + scale_color_lancet()
p2_lancet = p2 + scale_fill_lancet()
grid.arrange(p1_lancet, p2_lancet, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## jama
p1_jama = p1 + scale_color_jama()
p2_jama = p2 + scale_fill_jama()
grid.arrange(p1_jama, p2_jama, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## jco
p1_jco = p1 + scale_color_jco()
p2_jco = p2 + scale_fill_jco()
grid.arrange(p1_jco, p2_jco, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## ucscgb
p1_ucscgb = p1 + scale_color_ucscgb()
p2_ucscgb = p2 + scale_fill_ucscgb()
grid.arrange(p1_ucscgb, p2_ucscgb, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## d3
p1_d3 = p1 + scale_color_d3()
p2_d3 = p2 + scale_fill_d3()
grid.arrange(p1_d3, p2_d3, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## locuszoom
p1_locuszoom = p1 + scale_color_locuszoom()
p2_locuszoom = p2 + scale_fill_locuszoom()
grid.arrange(p1_locuszoom, p2_locuszoom, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## igv
p1_igv_default = p1 + scale_color_igv()
p2_igv_default = p2 + scale_fill_igv()
grid.arrange(p1_igv_default, p2_igv_default, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## uchicago
p1_uchicago = p1 + scale_color_uchicago()
p2_uchicago = p2 + scale_fill_uchicago()
grid.arrange(p1_uchicago, p2_uchicago, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## star trek
p1_startrek = p1 + scale_color_startrek()
p2_startrek = p2 + scale_fill_startrek()
grid.arrange(p1_startrek, p2_startrek, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## tron legacy
p1_tron = p1 + theme_dark() + theme(
panel.background = element_rect(fill = "#2D2D2D"),
legend.key = element_rect(fill = "#2D2D2D")) +
scale_color_tron()
p2_tron = p2 + theme_dark() + theme(
panel.background = element_rect(fill = "#2D2D2D")) +
scale_fill_tron()
grid.arrange(p1_tron, p2_tron, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## futurama
p1_futurama = p1 + scale_color_futurama()
p2_futurama = p2 + scale_fill_futurama()
grid.arrange(p1_futurama, p2_futurama, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## rick and morty
p1_rickandmorty = p1 + scale_color_rickandmorty()
p2_rickandmorty = p2 + scale_fill_rickandmorty()
grid.arrange(p1_rickandmorty, p2_rickandmorty, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## simpsons
p1_simpsons = p1 + scale_color_simpsons()
p2_simpsons = p2 + scale_fill_simpsons()
grid.arrange(p1_simpsons, p2_simpsons, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
3.连续性颜色配色
## 先用默认配色
library("reshape2")
data("mtcars")
cor = cor(unname(cbind(mtcars, mtcars, mtcars, mtcars)))
cor_melt = melt(cor)
p3 = ggplot(cor_melt, aes(x = Var1, y = Var2, fill = value)) +
geom_tile(colour = "black", size = 0.3) +
theme_bw() +
theme(axis.title.x = element_blank(),
axis.title.y = element_blank())
p3
## gsea配色
p3_gsea = p3 + scale_fill_gsea()
p3_gsea_inv = p3 + scale_fill_gsea(reverse = TRUE)
grid.arrange(p3_gsea, p3_gsea_inv, ncol = 2)
## material design配色
library("reshape2")
set.seed(42)
k = 9
x = diag(k)
x[upper.tri(x)] = runif(sum(1:(k - 1)), 0, 1)
x_melt = melt(x)
p4 = ggplot(x_melt, aes(x = Var1, y = Var2, fill = value)) +
geom_tile(colour = "black", size = 0.3) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0)) +
theme_bw() + theme(
legend.position = "none", plot.background = element_blank(),
axis.line = element_blank(), axis.ticks = element_blank(),
axis.text.x = element_blank(), axis.text.y = element_blank(),
axis.title.x = element_blank(), axis.title.y = element_blank(),
panel.background = element_blank(), panel.border = element_blank(),
panel.grid.major = element_blank(), panel.grid.minor = element_blank())
p4
## 使用19种material disign
grid.arrange(
p4 + scale_fill_material("red"), p4 + scale_fill_material("pink"),
p4 + scale_fill_material("purple"), p4 + scale_fill_material("deep-purple"),
p4 + scale_fill_material("indigo"), p4 + scale_fill_material("blue"),
p4 + scale_fill_material("light-blue"), p4 + scale_fill_material("cyan"),
p4 + scale_fill_material("teal"), p4 + scale_fill_material("green"),
p4 + scale_fill_material("light-green"), p4 + scale_fill_material("lime"),
p4 + scale_fill_material("yellow"), p4 + scale_fill_material("amber"),
p4 + scale_fill_material("orange"), p4 + scale_fill_material("deep-orange"),
p4 + scale_fill_material("brown"), p4 + scale_fill_material("grey"),
p4 + scale_fill_material("blue-grey"),
ncol = 6)
4.获取配色的色值
mypal = pal_npg("nrc", alpha = 0.7)(9)
mypal
## [1] "#E64B35B2" "#4DBBD5B2" "#00A087B2"
## [4] "#3C5488B2" "#F39B7FB2" "#8491B4B2"
## [7] "#91D1C2B2" "#DC0000B2" "#7E6148B2"
library("scales")
## Warning: package 'scales' was built under R
## version 4.0.5
show_col(mypal)
本文内容主要参考ef="https://cran.r-project.org/web/packages/ggsci/vignettes/ggsci.html#introduction%E3%80%82%22ggsci%22">ggsic官方网站
网友评论