查看原文
其他

ggsci-按照杂志要求进行文章图片配色

The following article is from 红皇后学术 Author 朱小鑫

之前曾经给大家说过一期关于R语言颜色设置的推文,当时介绍了R语言自带的色卡以及RColorBrewer包所提供的色卡,这些配色方案能够满足我们的基础需求。

但人对美的追求是无限的,同时也是个性化的,每个人对“好看”的理解和标准都不一样,这一点在颜色上表现的尤为明显,而对于基本上没有设计和美学基础的生物方向科研人员来说,如何在文章配图中使用一个让人看着舒服的配色方案还是比较困难的。

今天就给大家带来一个我们无需纠结就可以直接拿来使用,并且一定会被杂志的编辑和审稿人认可的配色方案


目  录

  • 1. ggsci包概述

  • 2. 离散型色卡

    • 2.1 NPG

    • 2.2 AAAS

    • 2.3 NEJM

    • 2.4 Lancet

    • 2.5 JAMA

    • 2.6 JCO

    • 2.7 UCSCGB

    • 2.8 D3

    • 2.9 LocusZoom

    • 2.10 IGV

    • 2.11 COSMIC

    • 2.12 UChicago

    • 2.13 Star Trek

    • 2.14 Tron Legacy

    • 2.15 Futurama

    • 2.16 Rick and Morty

    • 2.17 The Simpsons

  • 3. 连续型数据配色

    • 3.1 GSEA

    • 3.2 单一颜色梯度

  • 4. 非ggplot模式绘图


1. ggsci包概述

不同的期刊有其自身对于图片配色的喜好和标准,ggsci包为我们整合了这些标准的配色方案。

ggsci包可以说是ggplot2的一个扩展包,主要的应用是对ggplot绘制的图形提供设定好的配色方案,但同时该包中的配色方案也能够被base或lattice等其它绘图方式所调用。

ggsci包是目前我见过使用最简单、配色最好看的一个包,这个包的配色方案主要来自于SCI期刊论文、数据可视化库及电视节目等

作者开发这个包的主要目的是为科研工作者提供一个便利,因此,该包对于还在苦苦寻找图片最佳配色的我们有很大帮助。

ggsci包的配色方案使用scale_color_palname()scale_fill_palname()调用,其中的palname为不同配色方案的名称。

这里我会先介绍各种配色方案,在文末会给出ggsci包所包含的配色方案的对照表。

本文旨在介绍ggsci包的配色方案,绘图的示例代码来自ggsci包的官网,内容大多是对于ggsci官网document的中文翻译,便于大家理解。

2. 离散型色卡

首先,我们绘制一幅散点图和一幅条形图用于介绍不同的配色方案。

install.package("ggsci"# 安装ggsci包
library("ggsci"# 加载包
library("ggplot2"# 加载包
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)

2.1 NPG

该配色方案根据Nature旗下期刊文章图片配色开发。

p1_npg <- p1 + scale_color_npg()
p2_npg <- p2 + scale_fill_npg()
grid.arrange(p1_npg, p2_npg, ncol = 2)

2.2 AAAS

该配色方案是根据Science旗下期刊文章图片配色开发。

p1_aaas <- p1 + scale_color_aaas()
p2_aaas <- p2 + scale_fill_aaas()
grid.arrange(p1_aaas, p2_aaas, ncol = 2)

2.3 NEJM

该配色方案是根据新英格兰医学杂志的文章图片配色开发。

p1_nejm <- p1 + scale_color_nejm()
p2_nejm <- p2 + scale_fill_nejm()
grid.arrange(p1_nejm, p2_nejm, ncol = 2)

2.4 Lancet

该配色方案是根据柳叶刀杂志的文章图片配色开发。

p1_lancet <- p1 + scale_color_lancet()
p2_lancet <- p2 + scale_fill_lancet()
grid.arrange(p1_lancet, p2_lancet, ncol = 2)

2.5 JAMA

该配色方案是根据美国医学学会杂志的文章图片配色开发。

p1_jama <- p1 + scale_color_jama()
p2_jama <- p2 + scale_fill_jama()
grid.arrange(p1_jama, p2_jama, ncol = 2)

2.6 JCO

该配色方案是根据临床肿瘤学杂志的文章图片配色开发。

p1_jco <- p1 + scale_color_jco()
p2_jco <- p2 + scale_fill_jco()
grid.arrange(p1_jco, p2_jco, ncol = 2)

2.7 UCSCGB

该配色是根据UCSC基因组浏览器对染色体的配色方案开发,其同时还用于Circos绘制弦图的颜色匹配。

p1_ucscgb <- p1 + scale_color_ucscgb()
p2_ucscgb <- p2 + scale_fill_ucscgb()
grid.arrange(p1_ucscgb, p2_ucscgb, ncol = 2)

2.8 D3

该配色是根据D3.js工具的配色方案开发,其包含4个不同的色卡:category10category20category20bcategory20c,可以使用palette参数进行选择。

2.8.1 category10色卡

2.8.2 category20色卡

2.8.3 category20b色卡

2.8.4 category20c色卡

p1_d3 <- p1 + scale_color_d3()
p2_d3 <- p2 + scale_fill_d3()
grid.arrange(p1_d3, p2_d3, ncol = 2)

2.9 LocusZoom

该配色是根据LocusZoom.js工具的配色方案开发,该工具主要被用来展示GWAS数据。

p1_locuszoom <- p1 + scale_color_locuszoom()
p2_locuszoom <- p2 + scale_fill_locuszoom()
grid.arrange(p1_locuszoom, p2_locuszoom, ncol = 2)

2.10 IGV

该配色是根据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)

2.11 COSMIC

该配色是根据Catalogue Of Somatic Mutations in Cancers的配色方案开发,共有三个不同的色卡。

这个色卡没有调出来,不知道为什么。

p1_cosmic_hallmarks_light <- p1 + scale_color_cosmic("hallmarks_light")
p2_cosmic_hallmarks_light <- p2 + scale_fill_cosmic("hallmarks_light")
grid.arrange(p1_cosmic_hallmarks_light, p2_cosmic_hallmarks_light, ncol = 2)
p1_cosmic_hallmarks_dark <- p1 + scale_color_cosmic("hallmarks_dark")
p2_cosmic_hallmarks_dark <- p2 + scale_fill_cosmic("hallmarks_dark")
grid.arrange(p1_cosmic_hallmarks_dark, p2_cosmic_hallmarks_dark, ncol = 2)
p1_cosmic_signature <- p1 + scale_color_cosmic("signature_substitutions")
p2_cosmic_signature <- p2 + scale_fill_cosmic("signature_substitutions")
grid.arrange(p1_cosmic_signature, p2_cosmic_signature, ncol = 2)

2.12 UChicago

该配色方案是来自于芝加哥大学的配色方案,具有默认、light和dark三个色卡。

p1_uchicago <- p1 + scale_color_uchicago()
p2_uchicago <- p2 + scale_fill_uchicago()
grid.arrange(p1_uchicago, p2_uchicago, ncol = 2)

2.13 Star Trek

来自于《星际迷航》的配色方案。

p1_startrek <- p1 + scale_color_startrek()
p2_startrek <- p2 + scale_fill_startrek()
grid.arrange(p1_startrek, p2_startrek, ncol = 2)

2.14 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)

2.15 Futurama

该配色方案来自于一部美国喜剧漫画集动画片《飞出个未来》。

p1_futurama <- p1 + scale_color_futurama()
p2_futurama <- p2 + scale_fill_futurama()
grid.arrange(p1_futurama, p2_futurama, ncol = 2)

2.16 Rick and Morty

该配色方案来自于美国承认动画科幻情景喜剧《瑞克和莫蒂》。

p1_rickandmorty <- p1 + scale_color_rickandmorty()
p2_rickandmorty <- p2 + scale_fill_rickandmorty()
grid.arrange(p1_rickandmorty, p2_rickandmorty, ncol = 2)

2.17 The Simpsons

该配色方案来自于《辛普森一家》。

p1_simpsons <- p1 + scale_color_simpsons()
p2_simpsons <- p2 + scale_fill_simpsons()
grid.arrange(p1_simpsons, p2_simpsons, ncol = 2)

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())

3.1 GSEA

该配色方案来自于GSEA Gene Pattern。

p3_gsea <- p3 + scale_fill_gsea()
p3_gsea_inv <- p3 + scale_fill_gsea(reverse = TRUE)
grid.arrange(p3_gsea, p3_gsea_inv, ncol = 2)

3.2 单一颜色梯度

ggsci除了提供GSEA的梯度颜色配色方案之外,还提供19种单一颜色的梯度配色,使用scale_fill_material()进行调用。

这19种颜色包括red、pink、purple、deep-purple、indigo、blue、light-blue、cyan、teal、green、light-green、lime、yellow、amber、orange、deep-orange、brown、grey和blue-grey。

mypal <- pal_material("red", alpha = 0.9)(9); mypal
library("scales")
show_col(mypal)

4. 非ggplot模式绘图

ggsci包的配色方案可以使用色卡生成功能产生一个色卡向量,用于其它绘图模式的配色。

mypal <- pal_npg("nrc", alpha = 0.7)(9)

参数意义:
pal_npg # 不同色卡的生成函数名称;
nrc # 色卡的名称;
alpha # 颜色的透明度;
# 最后括号中的数字为生成色卡中颜色的数目。

不同配色方案色卡名称及使用和色卡生成函数如下方所示。

每一个色卡所包含的颜色数目不同,根据实际情况进行选择。

mypal <- pal_npg("nrc", alpha = 0.7)(9)
mypal
# 输出:
[1"#E64B35B2" "#4DBBD5B2" "#00A087B2" "#3C5488B2" "#F39B7FB2" "#8491B4B2" "#91D1C2B2" "#DC0000B2" "#7E6148B2"
library("scales")
show_col(mypal)

更多信息请访问ggsci官网:https://nanx.me/ggsci/articles/ggsci.html#discrete-color-palettes


相关文章

这个浏览器插件可以智能查询SCI论文被引情况

R语言统计与绘图:ROC曲线上32种截断值的计算

R语言统计与绘图:ROC曲线的统计计算

R语言统计与绘图:可视化ROC曲线的置信区间

R语言统计与绘图:绘制平滑ROC曲线

R语言统计与绘图:绘制不同坐标轴置信区间的森林图

R语言统计与绘图:绘制多个置信区间的森林图



分享、点赞、在看,一键三连!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存