R包分享|若何一秒获取Science、Nature等高分期刊配色?

刚刚阅读1回复0
kewenda
kewenda
  • 管理员
  • 注册排名1
  • 经验值154005
  • 级别管理员
  • 主题30801
  • 回复0
楼主

适用科研东西保举 、详实生信软件教程分享、前沿立异组学文章解读、独家生信视频教程发布,欢送存眷微信公家号:基迪奥生物 (gene-denovo)

本文做者:喵酱

相信列位在肝图表写论文时,必然城市思虑:那张图表用啥颜色?论文整体配色搭配怎么把控才都雅?

究竟结果高分期刊大牛文章的共通点,除了论文出色,整体配色也非常具有吸引力。

许多在线配色/提取颜色的东西效果不错,通过下载大牛文章利用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")

关于想自行控造配色的人来说,几乎太便利啦!

上述办法都可以快速生成肆意所需数量的科学期刊配色计划!按照本身的需求选择合适本身的办法吧!今天的分享就到那里~

若是列位有更好用的包或者办法欢送评论区分享~

参考文献

Bowerman, K.L., Knowles, S.C.L., Bradley, J.E. et al. Effects of laboratory domestication on the rodent gut microbiome. ISME COMMUN. 1, 49 (2021).

0
回帖 返回旅游

R包分享|若何一秒获取Science、Nature等高分期刊配色? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息