【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
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
R语言中的韦恩图(Venn Diagram)可以使用ggvenndiagram包来创建。韦恩图是一种用于可视化集合之间的重叠和差异的图表类型。 ggvenndiagram包提供了一个简单而灵活的方式来创建韦恩图。你可以使用该包来绘制两个或多个集合之间的重叠区域,并且可以自定义图表的外观和样式。 以下是使用ggvenndiagram包创建韦恩图的一般步骤: 1. 安装ggvenndiagram包:在R中使用install.packages("ggvenndiagram")命令来安装ggvenndiagram包。 2. 加载ggvenndiagram包:在R中使用library(ggvenndiagram)命令来加载ggvenndiagram包。 3. 创建数据:准备用于创建韦恩图的数据。数据应该是一个列表,其中每个元素代表一个集合,每个集合由一个字符向量表示。 4. 绘制韦恩图:使用ggvenn()函数来创建韦恩图。你可以通过传递不同的参数来自定义图表的外观和样式,例如设置颜色、标签等。 5. 自定义图表:根据需要,你可以使用ggplot2包中的函数来进一步自定义图表,例如添加标题、调整字体大小等。 6. 显示图表:使用print()函数来显示韦恩图。 下面是一个示例代码,展示了如何使用ggvenndiagram包创建一个简单的韦恩图: ```R # 安装ggvenndiagram包 install.packages("ggvenndiagram") # 加载ggvenndiagram包 library(ggvenndiagram) # 创建数据 set1 <- c("A", "B", "C") set2 <- c("B", "C", "D") set3 <- c("C", "D", "E") data <- list(set1, set2, set3) # 绘制韦恩图 venn <- ggvenn(data) # 自定义图表外观 venn <- venn + theme_minimal() # 显示图表 print(venn) ``` 这是一个简单的示例,你可以根据自己的需求进一步自定义和调整图表的外观。希望对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生信小鹏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值