热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

R语言画维恩图–VennDiagram

R语言中有很多程序包(package)可以做这个事情,包括limma,gplots,venneuler,还有今天我们下面要介绍的VennDiagram包。各个工具用起来差别不是很大,可

R语言中有很多程序包(package)可以做这个事情,包括limma, gplots, venneuler, 还有今天我们下面要介绍的VennDiagram包。各个工具用起来差别不是很大,可以根据个人喜好选择,不过其中limma包只能展示最多三个数据集的关系,后面三个包都可以展示超过三个数据集的维恩图。

1. 安装并加载包VennDiagram

> install.packages("VennDiagram")
> library(grid)
> library(VennDiagram)

2. 画维恩图的函数–venn.diagram()

VennDiagram包中画维恩图的函数是venn.diagram(). 下面我们来看一下venn.diagram()函数的使用及参数说明。

> venn.diagram(x, filename, height = 3000, width = 3000, resolution =
    500, imagetype = "tiff", units = "px", compression =
    "lzw", na = "stop", main = NULL, sub = NULL, main.pos
    = c(0.5, 1.05), main.fOntface= "plain",
    main.fOntfamily= "serif", main.col = "black",
    main.cex = 1, main.just = c(0.5, 1), sub.pos = c(0.5,
    1.05), sub.fOntface= "plain", sub.fOntfamily=
    "serif", sub.col = "black", sub.cex = 1, sub.just =
    c(0.5, 1), category.names = names(x), force.unique =
    TRUE, print.mode = "raw", sigdigs = 3, direct.area =
    FALSE, area.vector = 0, hyper.test = FALSE, total.population = NULL, 
    lower.tail = TRUE, ...)

部分参数说明:

x: a list of vectors, e.g: list(A=1:10, B=3:8, C=5:13)
filename: 设置图形输出文件名
resolution: 输出图形的清晰度,DPI数值
imagetype: 输出图形的格式,tiff, png, svg 等
alpha: 设置每个区块的透明度
main: 图形标题
main.fontface: 字体样式,比如斜体,粗体等
main.fontfamily: 字体,比如Time New Roman等
关于调解文字的,不仅可以针对标题调节,还有参数分别针对子标题,维恩图中每个部分(类别)的名字进行字体,大小,和字体样式的设置。

更多关于venn.diagram函数的参数说明可以查看其详细文档
venn.diagram官网: Make a Venn Diagram in VennDiagram: Generate High-Resolution Venn and Euler Plots (rdrr.io)

sample(x, size, replace=F) # 不放回抽样

二、venn基础图

1 两个圈

venn.diagram(
  x = list(set1, set2),
  category.names = c("Set 1" , "Set 2 "),
  filename = 'venn.png',
  output=TRUE
)

R语言画维恩图--VennDiagram
image

2 三个圈

venn.diagram(
  x = list(set1, set2, set3),
  category.names = c("Set 1" , "Set 2 " , "Set 3"),
  filename = 'venn.png',
  output=TRUE
)

R语言画维恩图--VennDiagram
image

3 四个圈

venn.diagram(
  x = list(set1, set2, set3, set4),
  category.names = c("Set 1" , "Set 2 " , "Set 3", "Set 4"),
  filename = 'venn.png',
  output=TRUE
)

R语言画维恩图--VennDiagram
image

4 五个圈

venn.diagram(
  x = list(set1, set2, set3, set4, set5),
  category.names = c("Set 1" , "Set 2 " , "Set 3", "Set 4", "Set 5"),
  filename = 'venn.png',
  output=TRUE
)

R语言画维恩图--VennDiagram
image
三、个性化参数调整
#调整参数进行图形优化

venn.plot 
library(RColorBrewer)
color 
R语言画维恩图--VennDiagram
image
四、保存

1 绘图待保存

library(RColorBrewer)

p = venn.diagram(
  x = list(set1, set2, set3, set4, set5),
  category.names = c("Set 1" , "Set 2 " , "Set 3", "Set 4", "Set 5"),
  # filename = 'venn.png',
  filename = NULL,
  output=TRUE,

  fill = brewer.pal(5, "Set2"),
  col = brewer.pal(5, "Set3"),
  fOntface= "bold",
  cat.col = brewer.pal(5, "Set3"),
  cat.fOntface= "bold"
)

2 保存为PDF

pdf("venn-pdf.pdf")
grid.draw(p)
dev.off()

R语言画维恩图--VennDiagram
image

3 保存为PNG

png("venn-png.png")
grid.draw(p)
dev.off()

R语言画维恩图--VennDiagram
image

更多参数:

col = NA  # 边框设为无色

参考:https://www.r-graph-gallery.com/14-venn-diagramm.html
venn网页工具:http://bioinformatics.psb.ugent.be/webtools/Venn/
venn.diagram函数文档: https://www.rdocumentation.org/packages/VennDiagram/versions/1.6.20/topics/venn.diagram
The R Graph Gallery绘图教程:https://www.r-graph-gallery.com/index.html
如何使用R来绘制韦恩图(Venn Diagram) – 云+社区 – 腾讯云 (tencent.com)


推荐阅读
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在Vite项目优化过程中,通过使用rollup-plugin-visualizer插件,可以有效地对Rollup打包结果进行可视化分析,帮助开发者清晰地了解各个模块的占用情况,从而进行更有针对性的优化。此外,结合其他常用插件,如vite-plugin-compression和vite-plugin-inspect,可以进一步提升项目的性能和可维护性。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文介绍了如何在 macOS 上安装 HL-340 USB 转串口驱动,并提供了详细的步骤和注意事项。包括下载驱动、关闭系统完整性保护、安装驱动以及验证安装的方法。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
author-avatar
懂我的何必解释
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有