jamesbang

V1

2022/09/19阅读:22主题:雁栖湖

🤩 ggsci | 一秒搞定你的顶刊配色(一)

1写在前面

总有小伙伴问我figure的配色是怎么弄的,本期介绍一下我个人常用的一些配色R包。 😘

2用到的包

rm(list = ls())
library(tidyverse)
library(ggsci)
library(patchwork)

3示例数据

这期使用示例数据为movies_long数据集。

library(ggstatsplot)
dat <- movies_long

我们先看一下变量的类型吧。🧐

str(dat)

4离散型配色

4.1 初步绘图

我们先用ggplot画2个图吧,配色真的是一言难尽啊~ 😣

p1 <-  dat %>% 
ggplot(aes(x = length, y = rating, colour = genre)) +
geom_point(alpha = 0.7) +
geom_smooth(method = "loess", alpha = 0.05, size = 1, span = 1) +
theme_bw()

p2 <- dat %>%
ggplot(aes(x = rating, fill = genre)) +
geom_histogram(binwidth = 0.8, position = "dodge") +
theme_bw()

p1 + p2

4.2 NPG配色

出自Nature Publishing Group的配色。

p1_npg <-  p1 + scale_color_npg()
p2_npg <- p2 + scale_fill_npg()

p1_npg + p2_npg

4.3 AAAS配色

出自American Association for the Advancement of Science的配色。

p1_aaas <-  p1 + scale_color_aaas()
p2_aaas <- p2 + scale_fill_aaas()

p1_aaas + p2_aaas

4.4 NEJM配色

出自The New England Journal of Medicine的配色。

p1_nejm = p1 + scale_color_nejm()
p2_nejm = p2 + scale_fill_nejm()

p1_nejm + p2_nejm

4.5 Lancet配色

出自Lancet的配色。

p1_lancet <-  p1 + scale_color_lancet()
p2_lancet <- p2 + scale_fill_lancet()

p1_lancet + p2_lancet

4.6 JAMA配色

出自The Journal of the American Medical Association的配色。

p1_jama <-  p1 + scale_color_jama()
p2_jama <- p2 + scale_fill_jama()

p1_jama + p2_jama

4.7 JCO配色

出自Journal of Clinical Oncology的配色。

p1_jco <-  p1 + scale_color_jco()
p2_jco <- p2 + scale_fill_jco()

p1_jco + p2_jco
000014 (4)
000014 (4)

4.8 UCSCGB配色

出自UCSC Genome Browser的配色。

p1_ucscgb <-  p1 + scale_color_ucscgb()
p2_ucscgb <- p2 + scale_fill_ucscgb()

p1_ucscgb + p2_ucscgb

4.9 D3配色

出自D3.js的配色。

p1_d3 <-  p1 + scale_color_d3()
p2_d3 <- p2 + scale_fill_d3()

p1_d3 + p2_d3

4.10 LocusZoom配色

出自LocusZoom的配色。

p1_locuszoom <-  p1 + scale_color_locuszoom()
p2_locuszoom <- p2 + scale_fill_locuszoom()

p1_locuszoom + p2_locuszoom

4.11 Integrative Genomics Viewer配色

出自Integrative Genomics Viewer的配色。

p1_igv <-  p1 + scale_color_igv()
p2_igv <- p2 + scale_fill_igv()

p1_igv + p2_igv

4.12 UChicago配色

出自University of Chicago的配色。

p1_uchicago <-  p1 + scale_color_uchicago()
p2_uchicago <- p2 + scale_fill_uchicago()

p1_uchicago + p2_uchicago
000014 (8)
000014 (8)

4.13 Star Trek配色

出自Star Trek的配色。

p1_startrek <-  p1 + scale_color_startrek()
p2_startrek <- p2 + scale_fill_startrek()

p1_startrek+ p2_startrek

4.14 Tron Legacy配色

出自Tron Legacy的配色。

p1_tron <-  p1 + scale_color_tron()
p2_tron <- p2 + scale_fill_tron()

p1_tron + p2_tron

4.15 Futurama配色

出自Futurama的配色。

p1_futurama <-  p1 + scale_color_futurama()
p2_futurama <- p2 + scale_fill_futurama()

p1_futurama + p2_futurama

4.16 Rick and Morty配色

出自Rick and Morty的配色。

p1_rickandmorty <-  p1 + scale_color_rickandmorty()
p2_rickandmorty <- p2 + scale_fill_rickandmorty()

p1_rickandmorty + p2_rickandmorty

4.17 The Simpsons配色

出自The Simpsons的配色。

p1_simpsons <-  p1 + scale_color_simpsons()
p2_simpsons <- p2 + scale_fill_simpsons()

p1_simpsons + p2_simpsons

5连续型配色

5.1 初步绘图

应用场景:连续型配色多用于热图相关性矩阵等等。

这里我们用ggplot画个热图吧,需要整理成ggplot需要的数据格式。 🤨
但如果大家要画相对复杂的热图还是推荐使用ComplexHeatmap包,以后我们再介绍吧。😊

library("reshape2")

cor <- cor(unname(cbind(dat[,3:6],dat[,3:6],dat[,3:6],dat[,3:6])))
cor_melt <- melt(cor)

p3 <- cor_melt %>%
ggplot(aes(x = Var1, y = Var2, fill = value)) +
geom_tile(size = 0.3,na.rm = T) +
theme_bw() +
theme(axis.title.x = element_blank(),
axis.title.y = element_blank())

p3

5.2 GSEA配色

出自GSEA GenePattern的配色。

p3_gsea     <-  p3 + scale_fill_gsea()
p3_gsea_inv <- p3 + scale_fill_gsea(reverse = TRUE)

p3_gsea + p3_gsea_inv

5.3 Material Design

出自material design color guidelines的配色。

wrap_plots(
p3 + scale_fill_material("red"), p3 + scale_fill_material("pink"),
p3 + scale_fill_material("purple"), p3 + scale_fill_material("deep-purple"),
p3 + scale_fill_material("indigo"), p3 + scale_fill_material("blue"),
p3 + scale_fill_material("light-blue"), p3 + scale_fill_material("cyan"),
p3 + scale_fill_material("teal"), p3 + scale_fill_material("green"),
p3 + scale_fill_material("light-green"), p3 + scale_fill_material("lime"),
p3 + scale_fill_material("yellow"), p3 + scale_fill_material("amber"),
p3 + scale_fill_material("orange"), p3 + scale_fill_material("deep-orange"),
p3 + scale_fill_material("brown"), p3 + scale_fill_material("grey"),
p3 + scale_fill_material("blue-grey")
)

6非ggplot中的应用

6.1 提取配色

有时候我们会遇到画的图并不是基于ggplot的,这个时候我们可以提取配色进行应用。

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

6.2 显示配色

library("scales")
show_col(mypal)

最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

分类:

后端

标签:

后端

作者介绍

jamesbang
V1