R語言生信學習-ggsci包介紹–SCI論文的配色
對於我這條使用R語言來繪圖的生信🐕而言,最令我絕望的便是關於配色的問題,很多時候自己選的顏色看上去會特別生硬,就算使用colorRampPalette產生漸變色也感覺不夠理想。無意間,我看到了“ggsci”這個包,它完全就是爲了SCI配色而設計的,下面我將挑選一些重要的函數來講解,詳細的內容可以去看官網的說明。
內置函數介紹:
這些是幫助頁面中的函數以及簡短的介紹:
pal_aaas AAAS Journal Color Palettes
pal_d3 D3.js Color Palettes
pal_futurama The Futurama Color Palettes
pal_gsea The GSEA GenePattern Color Palettes
pal_igv Integrative Genomics Viewer (IGV) Color Palettes
pal_jama Journal of the American Medical Association Color Palettes
pal_jco Journal of Clinical Oncology Color Palettes
pal_lancet Lancet Journal Color Palettes
pal_locuszoom LocusZoom Color Palette
pal_material Material Design Color Palettes
pal_nejm NEJM Color Palettes
pal_npg NPG Journal Color Palettes
pal_rickandmorty Rick and Morty Color Palettes
pal_simpsons The Simpsons Color Palettes
pal_startrek Star Trek Color Palettes
pal_tron Tron Legacy Color Palettes
pal_uchicago The University of Chicago Color Palettes
pal_ucscgb UCSC Genome Browser Color Palette
rgb_gsea The GSEA GenePattern Color Palettes
rgb_material Material Design Color Palettes
scale_color_aaas AAAS Journal Color Scales
scale_color_d3 D3.js Color Scales
scale_color_futurama The Futurama Color Scales
scale_color_gsea The GSEA GenePattern Color Scales
scale_color_igv Integrative Genomics Viewer (IGV) Color Scales
scale_color_jama Journal of the American Medical Association Color Scales
scale_color_jco Journal of Clinical Oncology Color Scales
scale_color_lancet Lancet Journal Color Scales
scale_color_locuszoom LocusZoom Color Scales
scale_color_material Material Design Color Palettes
scale_color_nejm NEJM Color Scales
scale_color_npg NPG Journal Color Scales
scale_color_rickandmorty Rick and Morty Color Scales
scale_color_simpsons The Simpsons Color Scales
scale_color_startrek Star Trek Color Scales
scale_color_tron Tron Legacy Color Scales
scale_color_uchicago The University of Chicago Color Scales
scale_color_ucscgb UCSC Genome Browser Color Scales
scale_colour_aaas AAAS Journal Color Scales
scale_colour_d3 D3.js Color Scales
scale_colour_futurama The Futurama Color Scales
scale_colour_gsea The GSEA GenePattern Color Scales
scale_colour_igv Integrative Genomics Viewer (IGV) Color Scales
scale_colour_jama Journal of the American Medical Association Color Scales
scale_colour_jco Journal of Clinical Oncology Color Scales
scale_colour_lancet Lancet Journal Color Scales
scale_colour_locuszoom LocusZoom Color Scales
scale_colour_material Material Design Color Palettes
scale_colour_nejm NEJM Color Scales
scale_colour_npg NPG Journal Color Scales
scale_colour_rickandmorty Rick and Morty Color Scales
scale_colour_simpsons The Simpsons Color Scales
scale_colour_startrek Star Trek Color Scales
scale_colour_tron Tron Legacy Color Scales
scale_colour_uchicago The University of Chicago Color Scales
scale_colour_ucscgb UCSC Genome Browser Color Scales
scale_fill_aaas AAAS Journal Color Scales
scale_fill_d3 D3.js Color Scales
scale_fill_futurama The Futurama Color Scales
scale_fill_gsea The GSEA GenePattern Color Scales
scale_fill_igv Integrative Genomics Viewer (IGV) Color Scales
scale_fill_jama Journal of the American Medical Association Color Scales
scale_fill_jco Journal of Clinical Oncology Color Scales
scale_fill_lancet Lancet Journal Color Scales
scale_fill_locuszoom LocusZoom Color Scales
scale_fill_material Material Design Color Palettes
scale_fill_nejm NEJM Color Scales
scale_fill_npg NPG Journal Color Scales
scale_fill_rickandmorty Rick and Morty Color Scales
scale_fill_simpsons The Simpsons Color Scales
scale_fill_startrek Star Trek Color Scales
scale_fill_tron Tron Legacy Color Scales
scale_fill_uchicago The University of Chicago Color Scales
scale_fill_ucscgb UCSC Genome Browser Color Scales
函數解釋:
根據說明書我們可以簡單的將它們分成三類:pal,rgb,scale,前兩個可以生成不同的顏色組,scale可以直接用與ggplot中。
pal_:
pal的調用都是一個模板,其中只有兩個參數:
palette的default默認參數(只用7個基礎色),alpha代表透明度,取值在(0,1)間,越大越透明.
在pal後面加上(6)代表只產生6個顏色。
pal_aaas(palette = c("default"), alpha = 1)(6)
上面是pal_aaas的一個例子,若想查看具體是哪一些顏色可以使用“scales”包來實現:
library("scales")
library("ggsci")
show_col(pal_aaas("default")(7)) #圖一
show_col(pal_aaas("default", alpha = 0.6)(7)) #圖二
show_col(pal_aaas("default", alpha = 0.2)(4)) #圖三
圖一至圖三:
以上是pal顏色的介紹,它的配色方案採用的是很多論文中的技巧,例如Integrative Genomics Viewer (IGV)的配色,Lancet Journal (柳葉刀)的配色,Journal of Clinical Oncology的配色等等,可以按照需求利用這些配色方案來完成繪圖任務。
rgb:
在ggsci包中,只有rgb_gsea和rgb_material這兩個基於RGB色彩模式的函數【紅、綠、藍】,但是它們的用法還是有一些差別:
rgb_gsea(palette = c("default"), n = 12, alpha = 1, reverse = FALSE)
rgb_material(palette = c("red", "pink", "purple", "deep-purple", "indigo",
"blue", "light-blue", "cyan", "teal", "green", "light-green", "lime",
"yellow", "amber", "orange", "deep-orange", "brown", "grey", "blue-grey"),
n = 10, alpha = 1, reverse = FALSE)
參數詳解:
n:產生多少個獨立的顏色
alpha:透明度
reverse:邏輯值,決定顏色的排序是否反序
palette:在rgb_material中有19種配色方案
實例:
library("scales")
show_col(pal_material("indigo")(10))
show_col(pal_material("indigo", n = 20, alpha = 0.6, reverse = TRUE)(13))
scale:
個人感覺scale函數是整個“ggsci”包中最簡單和常用的包,只需要在ggplot後面+上看中的scale顏色方案,即可完成配色,下面是一些實例的使用,分別是基於柳葉刀的配色方案(scale_fill_lancet()),基於GSEA(scale_fill_gsea())和基於Integrative Genomics Viewer (IGV)的配色方案( scale_fill_igv())
library("ggplot2")
data("diamonds")
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() + scale_fill_lancet()
library("ggplot2")
library("reshape2")
data("mtcars")
cor = cor(mtcars)
cor_melt = melt(cor)
ggplot(cor_melt,
aes(x = Var1, y = Var2, fill = value)) +
geom_tile(colour = "black", size = 0.3) +
theme_bw() + scale_fill_gsea()
library("ggplot2")
data("diamonds")
p = 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()
p + scale_fill_igv()
以上便是ggsci包的簡介,希望對每一個學習生信的人都有所幫助,我這裏也會不斷把學習中遇到的問題和經驗發上來,希望志同道合的朋友能和我多多討論,一起學習。
參考文獻
ggsci的官網地址:https://nanx.me/ggsci/articles/ggsci.html#discrete-color-palettes