【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

在这里插入图片描述

按照意向添加标签

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
要养成每次引用后,及时添加参考文献的来源,不然时间长了,技术来源就不清楚了

  • 9
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值