R-韋恩圖系列-ggVennDiagram - 簡(jiǎn)書 (jianshu.com)
R-韋恩圖系列-VennDiagram - 簡(jiǎn)書 (jianshu.com)
R-韋恩圖系列-UpSetR - 簡(jiǎn)書 (jianshu.com)
ggVennDiagram包是基于ggplot繪圖體系的复唤,因此適用于ggplot的語(yǔ)法結(jié)構(gòu)。
主要參考教程:https://mirror.linux.duke.edu/cran/web/packages/ggVennDiagram/vignettes/using-ggVennDiagram.html
# install.packages("ggVennDiagram")
library(ggVennDiagram)
packageVersion("ggVennDiagram")
# [1] ‘1.2.0’
library(ggplot2)
library(patchwork)
- 示例數(shù)據(jù)與繪圖要素
genes <- paste0("gene",1:1000)
set.seed(20210302)
gene_list <- list(A = sample(genes,100),
B = sample(genes,200),
C = sample(genes,300),
D = sample(genes,200))
# List of 4
# $ A: chr [1:100] "gene284" "gene106" "gene712" "gene905" ...
# $ B: chr [1:200] "gene403" "gene644" "gene438" "gene29" ...
# $ C: chr [1:300] "gene27" "gene788" "gene287" "gene361" ...
# $ D: chr [1:200] "gene601" "gene165" "gene479" "gene390" ...
#最簡(jiǎn)單的用法
ggVennDiagram(gene_list)
如下圖:關(guān)于維恩圖的細(xì)節(jié)修改有兩部分:一是標(biāo)簽內(nèi)容部分押逼,而是橢圓(圓)的部分
1浦楣、標(biāo)簽部分
1.1 分類名 category name
(1)默認(rèn)為list name胜臊,可通過(guò)category.names
參數(shù)修改
ggVennDiagram(gene_list, category.names = c("AA","BB","CC","DD"))
(2)set_size
與set_color
參數(shù)可以分別修改字體大小與顏色
ggVennDiagram(gene_list, category.names = c("AA","BB","CC","DD"),
set_size = 8, set_color = rainbow(4))
有時(shí)名字太長(zhǎng),可能會(huì)顯示不全,可以通過(guò)ggplot2函數(shù)拉寬畫布
p1=ggVennDiagram(gene_list,
category.names = c("a very long name","short name","name","another name"))
p2=ggVennDiagram(gene_list,
category.names = c("a very long name","short name","name","another name")) +
scale_x_continuous(expand = expansion(mult = .2))
p1 / p2
1.2 交集標(biāo)簽
- 如上圖可以看出:默認(rèn)為數(shù)值加百分比格式燥翅,且為白色透明度背景
(1) label
參數(shù):c("both", "count", "percent", "none") 四選一,默認(rèn)為第一個(gè)蜕提;label_alpha
可設(shè)置背景的不透明度
p1 = ggVennDiagram(gene_list, label = "count")
p2 = ggVennDiagram(gene_list, label = "percent",
label_percent_digit = 1, label_alpha = 0)
p1 / p2
(2) label_color
森书、label_size
可以分別設(shè)置標(biāo)簽顏色和字體大小
ggVennDiagram(gene_list, label_color = "firebrick", label_size = 5)
image.png
2、橢圓(圓)部分
(1) 關(guān)于橢圓的fill填充色設(shè)置為根據(jù)數(shù)值大小的漸變填充色
RColorBrewer::display.brewer.all()
p1 = ggVennDiagram(gene_list) +
scale_fill_distiller(palette = "RdBu") + ggtitle("p1")
p2 = ggVennDiagram(gene_list) +
scale_fill_distiller(palette = "Reds", direction = 1) + ggtitle("p2")
# If -1, the order of colours is reversed.
p3 = ggVennDiagram(gene_list) +
scale_fill_gradient(low="blue",high = "red") + ggtitle("p3")
# https://colorbrewer2.org/
p4 = ggVennDiagram(gene_list) +
scale_fill_gradient(low="#ffffb2",high = "#b10026") + ggtitle("p4")
(p1 | p2) / (p3 | p4)
image.png
(2) 橢圓邊的設(shè)置
-
scale_color_*
設(shè)置顏色 -
edge_size
設(shè)置粗細(xì) -
edge_lty
設(shè)置邊的格式
ggVennDiagram(gene_list, edge_lty = "dashed", edge_size = 1) +
scale_color_brewer(palette = "Set1")