构建数据
set.seed(20221001)
genes <- paste("gene",1:1000,sep="")
x <- list(
A = sample(genes,300),
B = sample(genes,525),
C = sample(genes,440),
D = sample(genes,350)
)
使用ggVennDiagram
绘制韦恩图
比较经典的韦恩图是使用venndiagram作图,但是缺点是不能使用pdf导出图形,对后期组图带来麻烦。因此使用基于ggplot2
的ggVennDiagram
package就能方便导出pdf,以利于后期组图,绘制符合杂志社要求的图片。
library(ggVennDiagram)
绘图
最基础的图形
p1 <- ggVennDiagram(x)
p1
按照意向添加标签
p1 <- ggVennDiagram(x,
category.names = c("A1","B1","C1","D1")
)
p1
修改x轴显示的内容长度
如果标签的长度比较长,例如
p1 <- ggVennDiagram(x,
category.names = c("a very long name","short name","name","another name"))
p1
需要进行如下调整
p1 + scale_x_continuous(expand = expansion(mult = .3))
改变标签的大小和颜色
ggVennDiagram(x,
set_color = c("blue","black","red","green"))
ggVennDiagram(x,
set_color = c("blue","black","red","green"),
set_size = 8)
更改展示内容
只展示数量
ggVennDiagram(x, label = "count")
只展示百分比
ggVennDiagram(x, label = "percent")
百分比的位数
p <- ggVennDiagram(x,
label_percent_digit = 2, label = "percent",
edge_size = 0, edge_lty = "solid")
p + theme(legend.position = 'none'
)
去掉标签的背景颜色
有两种方法
ggVennDiagram(x,
label = "count",label_alpha = 0,
edge_lty = "solid", edge_size = 0)
ggVennDiagram(x,
label = "count",label_geom = "text",
edge_lty = "dashed", edge_size = 0)
更改填充颜色和边框颜色
library(ggplot2)
p <- ggVennDiagram(x,
label_alpha = 0, label = "count",
edge_size = 0.1, edge_lty = "solid")
# Red Blue
p +
scale_fill_distiller(palette = "PuOr", direction = -1) +
scale_color_brewer(palette = "Set1")
因为是基于ggplot2
的包,所以颜色设置和ggplot2是一致的,Palettes
可选择的颜色如下
Diverging
BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral
Qualitative
Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3
Sequential
Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd
direction
设置颜色的方向,只有1和-1两个选项
RColorBrewer::display.brewer.all()
添加标题和副标题
既然是基于ggplot2
的package,那么很多内容就是共通的
library(ggplot2)
p <- ggVennDiagram(x,
label_alpha = 0, label = "count",
edge_size = 0.1, edge_lty = "solid")
# Red Blue
p +
scale_fill_distiller(palette = "PuOr", direction = -1) +
scale_color_brewer(palette = "Set1") +
labs(title = "Venn Diagram",
subtitle = "`ggVennDiagram`",
caption = Sys.Date())
参考来源
https://mirror.linux.duke.edu/cran/web/packages/ggVennDiagram/vignettes/using-ggVennDiagram.html
要养成每次引用后,及时添加参考文献的来源,不然时间长了,技术来源就不清楚了