总有小伙伴问我figure
的配色是怎么弄的,本期介绍一下我个人常用的一些配色R包
。 😘
rm(list = ls())
library(tidyverse)
library(ggsci)
library(patchwork)
这期使用示例数据为
movies_long
数据集。
library(ggstatsplot)
dat <- movies_long
我们先看一下变量的类型吧。🧐
str(dat)
我们先用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
出自
Nature Publishing Group
的配色。
p1_npg <- p1 + scale_color_npg()
p2_npg <- p2 + scale_fill_npg()
p1_npg + p2_npg
出自
American Association for the Advancement of Science
的配色。
p1_aaas <- p1 + scale_color_aaas()
p2_aaas <- p2 + scale_fill_aaas()
p1_aaas + p2_aaas
出自
The New England Journal of Medicine
的配色。
p1_nejm = p1 + scale_color_nejm()
p2_nejm = p2 + scale_fill_nejm()
p1_nejm + p2_nejm
出自
Lancet
的配色。
p1_lancet <- p1 + scale_color_lancet()
p2_lancet <- p2 + scale_fill_lancet()
p1_lancet + p2_lancet
出自
The Journal of the American Medical Association
的配色。
p1_jama <- p1 + scale_color_jama()
p2_jama <- p2 + scale_fill_jama()
p1_jama + p2_jama
出自
Journal of Clinical Oncology
的配色。
p1_jco <- p1 + scale_color_jco()
p2_jco <- p2 + scale_fill_jco()
p1_jco + p2_jco
000014 (4)
出自
UCSC Genome Browser
的配色。
p1_ucscgb <- p1 + scale_color_ucscgb()
p2_ucscgb <- p2 + scale_fill_ucscgb()
p1_ucscgb + p2_ucscgb
出自
D3.js
的配色。
p1_d3 <- p1 + scale_color_d3()
p2_d3 <- p2 + scale_fill_d3()
p1_d3 + p2_d3
出自
LocusZoom
的配色。
p1_locuszoom <- p1 + scale_color_locuszoom()
p2_locuszoom <- p2 + scale_fill_locuszoom()
p1_locuszoom + p2_locuszoom
出自
Integrative Genomics Viewer
的配色。
p1_igv <- p1 + scale_color_igv()
p2_igv <- p2 + scale_fill_igv()
p1_igv + p2_igv
出自
University of Chicago
的配色。
p1_uchicago <- p1 + scale_color_uchicago()
p2_uchicago <- p2 + scale_fill_uchicago()
p1_uchicago + p2_uchicago
000014 (8)
出自
Star Trek
的配色。
p1_startrek <- p1 + scale_color_startrek()
p2_startrek <- p2 + scale_fill_startrek()
p1_startrek+ p2_startrek
出自
Tron Legacy
的配色。
p1_tron <- p1 + scale_color_tron()
p2_tron <- p2 + scale_fill_tron()
p1_tron + p2_tron
出自
Futurama
的配色。
p1_futurama <- p1 + scale_color_futurama()
p2_futurama <- p2 + scale_fill_futurama()
p1_futurama + p2_futurama
出自
Rick and Morty
的配色。
p1_rickandmorty <- p1 + scale_color_rickandmorty()
p2_rickandmorty <- p2 + scale_fill_rickandmorty()
p1_rickandmorty + p2_rickandmorty
出自
The Simpsons
的配色。
p1_simpsons <- p1 + scale_color_simpsons()
p2_simpsons <- p2 + scale_fill_simpsons()
p1_simpsons + p2_simpsons
应用场景:连续型配色多用于热图
、相关性矩阵
等等。
这里我们用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
出自
GSEA GenePattern
的配色。
p3_gsea <- p3 + scale_fill_gsea()
p3_gsea_inv <- p3 + scale_fill_gsea(reverse = TRUE)
p3_gsea + p3_gsea_inv
出自
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")
)
有时候我们会遇到画的图并不是基于ggplot
的,这个时候我们可以提取配色进行应用。
mypal <- pal_npg("nrc", alpha = 0.7)(9)
mypal
library("scales")
show_col(mypal)
最后祝大家早日不卷!~