
jamesbang
2022/09/19阅读:124主题:雁栖湖
🤩 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

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

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
wx🔍: Grassssss 卷起来了