韦恩图
韦恩图(venn)又称文氏图,是科研文章中最常见的图,可以用来表示多个数据集之间的关系。当然也可以进行集合运算。一般用于展示2-5个集合之间的交并集关系。集合数目更多时,将会比较难分辨,更多集合的展示方式一般使用upSetView。绘制韦恩图的工具有很多,这里小编先给没有任何编程基础的人推荐几款比较好用的网络工具。
1. Venn
http://bioinformatics.psb.ugent.be/webtools/Venn/
操作简单,不仅画出了韦恩图,还很贴心的给出了数据统计的结果并列出了各个部分对应的ID,且提供直接下载。缺点是颜色和大小不可调。
2. Venny
http://bioinfogp.cnb.csic.es/tools/venny/index.html
这款比较漂亮,操作也很简单,但是不能根据列表大小调整生成的圆圈大小。
3. BioVenn
http://www.biovenn.nl/index.php
BioVenn只能绘制3维及以下的韦恩图,不过圆圈的大小可以随数据集大小而变化,并且对图片的编辑选项也更多。
=========华丽的分割线============
对于掌控性要求比较高的同学,可以试着自己写R代码来绘制韦恩图。
今天我们就来重现下面这篇学术论文里面的韦恩图
Fig3为韦恩图
下面我们用R里面的VennDiagram包来重现这个图
我们这里就不用原文作者的数据了,而是随机产生了4个gene list,这四个gene list存放在sets.txt文件中,以制表符隔开
x <- readLines("sets.txt")
sets <- strsplit(x, "t")
names(sets) <- vapply(sets, function(y) y[1], character(1))
sets <- lapply(sets, "[", -1)
setname=names(sets)
BiocManager::install("VennDiagram")
library(VennDiagram)
setnum=length(sets)
venn.diagram(
x=sets,
category.names = names(sets),
filename = 'venn_diagramm.tiff',
print.mode=c("raw","percent"),
sigdigs=1,
#控制输出图片的大小和分辨率
height = 600 ,
width = 600 ,
resolution = 300,
#控制圆圈
lwd = 0.8,
#lty = 'blank', #这行可以控制有没有圆圈的边框
fill = rainbow(setnum),
#控制圆圈中的数字
cex = 0.3, #字体大小
#fontface = "bold", #粗体
#fontfamily = "sans",
#控制set的名字
cat.cex = 0.4, #字体大小
#cat.fontface = "bold", #粗体
#cat.fontfamily = "sans", #字体
cat.col=rainbow(setnum) #set名字的颜色
)
运行完代码会得到如下结果
这里小编还输出了每一个交集的基因名称
对于超过5个集合的情况,维恩图展示起来其实比较乱,小编比较推荐使用R的UpSetR包来画Upset plot,如下
- 替换WordPress 自带默认的 jQuery库, jQuery库页脚加载
- Enterprise Library 4 数据访问应用程序块
- 替换EnterPrise Library 4.0 缓存应用程序块的CacheManager
- Enterprise Library 4.0缓存应用程序块
- 通过.htaccess 让WordPress 的上传文件夹更安全
- asp.net 性能调较
- 零基础学习大数据,搭建Hadoop处理环境
- 为你的WordPress 博客开启两步验证功能(技术支持:谷歌)
- 为你的WordPress 博客开启两步验证功能(技术支持:谷歌)
- WordPress 注册页面显示自定义提示信息
- Windows Server 2008密码重设盘
- Dynamite动态排序库
- WordPress 顶部管理工具条添加自定义栏目
- WordPress 在后台文章和页面列表显示对应的ID
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 中IntentFilter的匹配规则实例详解
- Android VideoCache视频缓存的方法详解
- Android标题栏最右边添加按钮的实例
- Ubuntu18.04系统安装、配置Redis及phpredis扩展操作详解
- Android电话拨号器实例详解
- Android获取App内存使用情况的方法
- linux后台运行的几种方式(小结)
- Android 实现ListView的点击变色的实例
- Android播放音乐案例分享
- linux crm部署代码详解
- Android自定义WaveProgressView实现水波纹加载需求
- CentOS8下的root密码快速修改方法
- Android开发之自定义刮刮卡实现代码
- Android ScrollView无法填充满屏幕的解决办法
- Android 监听屏幕是否锁屏的实例代码