离散调色板我们使用带平滑曲线的散点图和条形图来演示ggsci中的离散调色板。 原始配色 library('ggplot2') library('gridExtra') library('ggsci') 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) NPG配色 NPG调色板的灵感来自于自然出版集团出版的期刊中的图表 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) NEJMp1_nejm <- p1 + scale_color_nejm() p2_nejm <- p2 + scale_fill_nejm() grid.arrange(p1_nejm, p2_nejm, ncol = 2) Lancetp1_lancet <- p1 + scale_color_lancet() p2_lancet <- p2 + scale_fill_lancet() grid.arrange(p1_lancet, p2_lancet, ncol = 2) JAMAp1_jama <- p1 + scale_color_jama() p2_jama <- p2 + scale_fill_jama() grid.arrange(p1_jama, p2_jama, ncol = 2) JCOp1_jco <- p1 + scale_color_jco() p2_jco <- p2 + scale_fill_jco() grid.arrange(p1_jco, p2_jco, ncol = 2) UCSCGBp1_ucscgb <- p1 + scale_color_ucscgb() p2_ucscgb <- p2 + scale_fill_ucscgb() grid.arrange(p1_ucscgb, p2_ucscgb, ncol = 2) D3p1_d3 <- p1 + scale_color_d3() p2_d3 <- p2 + scale_fill_d3() grid.arrange(p1_d3, p2_d3, ncol = 2) LocusZoomp1_locuszoom <- p1 + scale_color_locuszoom() p2_locuszoom <- p2 + scale_fill_locuszoom() grid.arrange(p1_locuszoom, p2_locuszoom, ncol = 2) IGVp1_igv_default <- p1 + scale_color_igv() p2_igv_default <- p2 + scale_fill_igv() grid.arrange(p1_igv_default, p2_igv_default, ncol = 2) COSMICp1_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) UChicagop1_uchicago <- p1 + scale_color_uchicago() p2_uchicago <- p2 + scale_fill_uchicago() grid.arrange(p1_uchicago, p2_uchicago, ncol = 2) Star Trekp1_startrek <- p1 + scale_color_startrek() p2_startrek <- p2 + scale_fill_startrek() grid.arrange(p1_startrek, p2_startrek, ncol = 2) Tron Legacyp1_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) Futuramap1_futurama <- p1 + scale_color_futurama() p2_futurama <- p2 + scale_fill_futurama() grid.arrange(p1_futurama, p2_futurama, ncol = 2) Rick and Mortyp1_rickandmorty <- p1 + scale_color_rickandmorty() p2_rickandmorty <- p2 + scale_fill_rickandmorty() grid.arrange(p1_rickandmorty, p2_rickandmorty, ncol = 2) The Simpsonsp1_simpsons <- p1 + scale_color_simpsons() p2_simpsons <- p2 + scale_fill_simpsons() grid.arrange(p1_simpsons, p2_simpsons, ncol = 2) 连续调色板我们将使用相关矩阵可视化来演示ggsci中的连续调色板。 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() ) p3 GSEAp3_gsea <- p3 + scale_fill_gsea() p3_gsea_inv <- p3 + scale_fill_gsea(reverse = TRUE) grid.arrange(p3_gsea, p3_gsea_inv, ncol = 2) Material Design材料设计调色板来自材料设计颜色指南。我们首先生成一个随机矩阵: library("reshape2")
set.seed(121) k <- 9 x <- diag(k) x[upper.tri(x)] <- runif(sum(1:(k - 1)), 0, 1) x_melt <- melt(x)
p4 <- ggplot(x_melt, aes(x = Var1, y = Var2, fill = value)) + geom_tile(colour = "black", size = 0.3) + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0)) + theme_bw() + theme( legend.position = "none", plot.background = element_blank(), axis.line = element_blank(), axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank(), panel.background = element_blank(), panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank() ) p4 使用19个材质设计调色板绘制矩阵: grid.arrange( p4 + scale_fill_material("red"), p4 + scale_fill_material("pink"), p4 + scale_fill_material("purple"), p4 + scale_fill_material("deep-purple"), p4 + scale_fill_material("indigo"), p4 + scale_fill_material("blue"), p4 + scale_fill_material("light-blue"), p4 + scale_fill_material("cyan"), p4 + scale_fill_material("teal"), p4 + scale_fill_material("green"), p4 + scale_fill_material("light-green"), p4 + scale_fill_material("lime"), p4 + scale_fill_material("yellow"), p4 + scale_fill_material("amber"), p4 + scale_fill_material("orange"), p4 + scale_fill_material("deep-orange"), p4 + scale_fill_material("brown"), p4 + scale_fill_material("grey"), p4 + scale_fill_material("blue-grey"), ncol = 6 ) 从上图中我们可以看到,尽管所有的图都显示了一个相同的矩阵,但是一些调色板比其他调色板更舒服,因为我们的眼睛对饱和度的变化更敏感 Non-ggplot2 Graphics要将ggsci中的调色板应用于其他图形系统(如基础图形和晶格图形),只需使用上表中的调色板生成器函数。例如: mypal <- pal_npg("nrc", alpha = 0.7)(9) mypal ## [1] "#E64B35B2" "#4DBBD5B2" "#00A087B2" "#3C5488B2" "#F39B7FB2" "#8491B4B2" ## [7] "#91D1C2B2" "#DC0000B2" "#7E6148B2" library("scales") show_col(mypal) 您将能够使用生成的十六进制颜色代码为这样的图形系统相应。整个调色板的透明级别很容易通过每个生成器或scale函数中的参数“alpha”进行调整。 好了,今天的分享就到这里 福利专用贴:福利专用贴 目前有 1. 火山图,热图示例文件及完整代码 2. R语言学习基础知识代码 3. R语言实战(中文完整版) 4. R数据科学(中文完整版) 5. ggplot2:数据分析与图形艺术 6. 30分钟学会ggplot2 7. TCGA数据整理8. ggplot2速查表pdf(可复制) |
|