VennDiagram包画韦恩图

获取更多R语言知识,请关注公众号:医学和生信笔记

医学和生信笔记。专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。

韦恩图是非常常见的类型,今天学习下常见的韦恩图画图方法。

今天先介绍VennDigram包,也是我平常画韦恩图最常用的R包。

先随机生成几个数据集。

set1 <- sample(1:1000,300,replace = F)
set2 <- sample(1:1000,130,replace = F)
set3 <- sample(1:1000,300,replace = F)
set4 <- sample(1:1000,300,replace = F)

2个数据集

library(VennDiagram)
## 载入需要的程辑包:grid
## 载入需要的程辑包:futile.logger

s1 <- list(set1 = set1, 
           set2 = set2)

v1 <- venn.diagram(x = s1, filename = NULL)
cowplot::plot_grid(v1)

plot of chunk unnamed-chunk-2

你如果直接这样写,就会自动保存文件到本地:

venn.diagram(x = s1, filename = "name.png", 
              height = 450, 
              width = 450,
              resolution =300, 
              imagetype="png"
              )

美化一下(美化后的图依然还是很丑哈,纯粹为了演示下各个参数的用法):

v1 <- venn.diagram(x = s1, filename = NULL, # 直接给一个名称会自动保存文件到本地
                   scaled = T, # 根据比例显示大小
                   alpha=c(0.8, 0.8),
                   fill=c("#0073C2FF","#EFC000FF"), # 配色
                   cat.dist = c(0.03,0.03), # 名称距离圆圈的远近
                   cat.pos = c(0,0), # 名称相对于圆圈的位置,角度
                   cat.cex = c(2,2), #名称字体大小
                   lwd = 2, # 圆圈线条粗细
                   lty = 1, # 圆圈线条形状
                   col = c("black","red"), #圆圈线条颜色
                   label.col = c("black","blue","red"), # 数字颜色,注意数量
                   cex = 2, # 数字大小
                   ext.text = T, # 增加指示线和标签
                   ext.percent = c(0.9,0.5,0.4), # 出现指示线和标签的条件
                   ext.dist = c(0.01,0.01), 
                   ext.length = 0.8
                   )

cowplot::plot_grid(v1)

plot of chunk unnamed-chunk-4

上面列出的参数应该就是大家最常用的了,很多都需要根据自己的实际情况不断调整才能达到很好看的效果。

3个数据集

s2 <- list(
  set1 = set1,
  set2 = set2,
  set3 = set3
)

v2 <- venn.diagram(x = s2, filename = NULL,
                   col="white", 
                   fill=c(colors()[616], colors()[38], colors()[468]),
                   alpha=c(0.6, 0.6, 0.6), 
                   lwd=c(1, 1, 1), 
                   cex=2, 
                   cat.dist=c(0.05, 0.05, -0.45), 
                   cat.pos=c(0, 0, 0), 
                   cat.cex=2
                   )
cowplot::plot_grid(v2)

plot of chunk unnamed-chunk-5

4个数据集

## 4个数据集

s3 <- list(
  set1 = set1,
  set2 = set2,
  set3 = set3,
  set4 = set4
)

v3 <- venn.diagram(x = s3, filename = NULL, 
                   #height = 450, 
                   #width = 450,
                   #resolution =300, 
                   #imagetype="png", 
                   col="transparent",
                   fill=c("cornflowerblue","green","yellow","darkorchid1"),
                   alpha = 0.50, 
                   cex=2, 
                   cat.cex=2
                   )

cowplot::plot_grid(v3)

plot of chunk unnamed-chunk-6

再来一些细节调整:

s4 <- list(
   A = set1,
   B = set2,
   C = set3,
   D = set4
)

venn.plot <- venn.diagram(
	x = s4,
	filename = NULL,
	col = "transparent",
	fill = c("cornflowerblue", "green", "yellow", "darkorchid1"),
	alpha = 0.50,
	label.col = c("orange", "white", "darkorchid4", "white", 
	"white", "white", "white", "white", "darkblue", "white", 
	"white", "white", "white", "darkgreen", "white"),
	cex = 1.5,
	fontfamily = "serif",
	fontface = "bold",
	cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),
	cat.cex = 1.5,
	cat.pos = c(30,150,70,110),
	cat.dist = c(0.2,0.2,0.1,0.1),
	cat.fontfamily = "serif",
	rotation.degree = 270, # 旋转图形
	margin = 0.1 # 调整边距
	)

cowplot::plot_grid(venn.plot)

plot of chunk unnamed-chunk-7

5个数据集当然也是可以的,5个就是这个包的上限,就不再演示了。

但是这个包每运行一次就会产生一个本地日志文件,我不能忍,烦的要命!

获取更多R语言知识,请关注公众号:医学和生信笔记

医学和生信笔记。专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值