一篇优秀的SCI论文,除了要有好的结果外,如何对结果进行可视化展示、如何对可视化图形进行配色都是SCI的加分项,今天小编给大家介绍的就是CNS级的文章配色,让你再也不用为文章配色而纠结!
这款R包的名字叫做-- ggsci,网址为:https://cran.r-project.org/web/packages/ggsci/vignettes/ggsci.html
ggsci提供了一系列的调色板,目前有18种配色方案,收录了来自顶级的科学期刊的配色、数据库可视化中的配色、科幻电影中的主题配色以及电视节目中高级的配色,不论是离散型的配色还是连续型的配色统统都有,一应俱全。
所有的调色板可以被ggplot2的scale系列函数直接调用,调用命令为::
其中palname用相应的调色板名称替换即可(命令请参照表格1/2中的第二列)。
我们先在目录中感受一下ggsci的能力所及:
表格1. 离散型颜色的调色板
表格2. 连续型颜色的调色板
再来一波视觉冲击我们感受一下ggsci的魅力所在:
离散型调色板的可视化:
NPG
AAAS
NEJM
Lancet
JAMA
JCO
UCSCGB
D3
LocusZoom
IGV
COSMIC
UChicago
Star Trek
Tron Legacy
Futurama
Rick and Morty
The Simpsons
连续型调色板的可视化:
GSEA
Material Design
接下来就是如何使用了……
Step1.安装和加载
R包的使用方法无非包含两步:安装和加载
安装方法:
if (!requireNamespace("BiocManager",quietly = TRUE)) install.packages("BiocManager")BiocManager::install("ggsci")
或
install.packages("ggsci")
加载方法:
library(ggsci)
Step2.利用scale_color_palname()或scale_fill_palname()调用画板颜色
离散型颜色画板--以NPG为例
library("ggsci")
library("ggplot2")
library("gridExtra")
data("diamonds")#load data
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()#绘制柱状图
#NPG
p1_npg <- p1 + scale_color_npg()
p2_npg <- p2 + scale_fill_npg()
grid.arrange(p1_npg, p2_npg, ncol = 2)
连续型颜色画板--以GSEA为例
连续画板(以GSEA为例):
library("reshape2")
data("mtcars") #load data
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() )
#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)
Step3.如果想调出某个主题的颜色代码该如何操作?
若想从某个主题画板中调出颜色的代码值,可以参考表格1和表格2中的第四列函数,以及第三列中的参数。
例如:从柳叶刀杂志的主题配色中提取9个颜色:
mypal<-pal_lancet("lanonc",alpha=0.6)(9) #函数pal_lancet在表格中Lancet行所对应的第四列;参数lanonc在表格中Lancet行所对应的第二列;alpha参数控制图形的透明度水平
print(mypal) #打印9个颜色的十六进制颜色代码:"#00468B99" "#ED000099" "#42B54099" "#0099B499" "#925E9F99" "#FDAF9199" "#AD002A99" "#ADB6B699" "#1B191999"
若想进一步将这9个颜色可视化出来,需要两行代码:
library("scales")
show_col(mypal)