【R语言科研绘图】——韦恩图

构建数据

set.seed(20190708)
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导出图形,对后期组图带来麻烦。因此使用基于ggplot2ggVennDiagrampackage就能方便导出pdf,以利于后期组图,绘制符合杂志社要求的图片。

library(ggVennDiagram)

绘图

最基础的图形

p1 <- ggVennDiagram(x)
p1

【R语言科研绘图】——韦恩图_第1张图片

按照意向添加标签

p1 <- ggVennDiagram(x, 
                    category.names = c("A1","B1","C1","D1")
                    )
p1

【R语言科研绘图】——韦恩图_第2张图片

修改x轴显示的内容长度

如果标签的长度比较长,例如

p1 <- ggVennDiagram(x, 
                    category.names = c("a very long name","short name","name","another name"))
p1

【R语言科研绘图】——韦恩图_第3张图片

需要进行如下调整

p1 + scale_x_continuous(expand = expansion(mult = .3))

【R语言科研绘图】——韦恩图_第4张图片

改变标签的大小和颜色

ggVennDiagram(x,
              set_color = c("blue","black","red","green"))

【R语言科研绘图】——韦恩图_第5张图片

ggVennDiagram(x,
              set_color = c("blue","black","red","green"),
              set_size = 8)

【R语言科研绘图】——韦恩图_第6张图片

更改展示内容

只展示数量

ggVennDiagram(x, label = "count")

【R语言科研绘图】——韦恩图_第7张图片

只展示百分比

ggVennDiagram(x, label = "percent")

【R语言科研绘图】——韦恩图_第8张图片

百分比的位数

p <- ggVennDiagram(x, 
                   label_percent_digit = 2, label = "percent", 
                   edge_size = 0, edge_lty = "solid")
p + theme(legend.position = 'none'
          )

【R语言科研绘图】——韦恩图_第9张图片

去掉标签的背景颜色

有两种方法

ggVennDiagram(x, 
              label = "count",label_alpha = 0,
              edge_lty = "solid", edge_size = 0)

【R语言科研绘图】——韦恩图_第10张图片

ggVennDiagram(x, 
              label = "count",label_geom = "text",
               edge_lty = "dashed", edge_size = 0)

【R语言科研绘图】——韦恩图_第11张图片

更改填充颜色和边框颜色

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")

【R语言科研绘图】——韦恩图_第12张图片

因为是基于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()

【R语言科研绘图】——韦恩图_第13张图片

添加标题和副标题

既然是基于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())

【R语言科研绘图】——韦恩图_第14张图片

参考来源

https://mirror.linux.duke.edu/cran/web/packages/ggVennDiagram/vignettes/using-ggVennDiagram.html
要养成每次引用后,及时添加参考文献的来源,不然时间长了,技术来源就不清楚了

你可能感兴趣的:(科研绘图,数据挖掘,r语言,数据分析)