R科研绘图调色板—ggsci包
简介
ggsci提供了一系列高质量的调色板,其灵感来自于期刊、电影等。ggsci中的调色板可用于ggplot2。基本用法:
scale_color_palname() scale_fill_palname() #安装并加载ggsci包 install.packages("ggsci") library("ggsci") library("ggplot2") library("gridExtra")
离散型调色板
使用散点图和条形图来演示ggsci中的调色板。
#示例数据集
data("diamonds")#使用diamonds数据集 head(diamonds) > head(diamonds) # A tibble: 6 x 10 carat cut color clarity depth table price x y z <dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl> 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31 4 0.290 Premium I VS2 62.4 58 334 4.2 4.23 2.63 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
#原始配色
p1 <- ggplot( subset(diamonds, carat >= 2.2), #筛选数据 aes(x = table, y = price, colour = cut) #确定xy ) + 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) #确定x ) + geom_histogram(colour = "black", binwidth = 1, position = "dodge") + #画直方图 theme_bw() #主题 grid.arrange(p1, p2, ncol = 2) #合并两图
Nature配色
p1_npg <- p1 + scale_color_npg() p2_npg <- p2 + scale_fill_npg() grid.arrange(p1_npg, p2_npg, ncol = 2)
美国科学促进会(AAAS)
p1_aaas <- p1 + scale_color_aaas() p2_aaas <- p2 + scale_fill_aaas() grid.arrange(p1_aaas, p2_aaas, ncol = 2)
新英格兰杂志(NEJM)
p1_lancet <- p1 + scale_color_lancet() p2_lancet <- p2 + scale_fill_lancet() grid.arrange(p1_lancet, p2_lancet, ncol = 2)
柳叶刀(Lancet)
p1_lancet <- p1 + scale_color_lancet() p2_lancet <- p2 + scale_fill_lancet() grid.arrange(p1_lancet, p2_lancet, ncol = 2)
美国医学会杂志(JAMA)
p1_jama <- p1 + scale_color_jama() p2_jama <- p2 + scale_fill_jama() grid.arrange(p1_jama, p2_jama, ncol = 2)
临床肿瘤学杂志(JCO)
p1_jco <- p1 + scale_color_jco() p2_jco <- p2 + scale_fill_jco() grid.arrange(p1_jco, p2_jco, ncol = 2)
创:战纪(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)