image-20231202210432970.png
R实用绘图系列主要是带领大家绘制一些实用、好看而又不太复杂的科研常用图形,主打一个实用,该系列会持续更新,希望对小伙伴们有所帮助。
那我们就正式开始啦。今天带领大家绘制的是韦恩图(venn diagram),韦恩图属于关系型图表,通过圆圈与圆圈之间的重叠关系,来表示集合与集合之间的相交关系。
一般来说韦恩图只适用于小于等于5个集合的场景,如果集合过多,一方面是不美观,另一方面是常用的R包也不支持。这种情况可以考虑花瓣图或者Upset图等,后续我们都会更新。
数据准备
在这里我准备了四个数值型元素的集合,在R中用向量表示就可以。你也可以采用字符型等其他元素集合。
# 设置不一样的抽样种子,获得4个不一样的集合
# 并把结果固定下来
set.seed(123)
part1 <- sample(1:300,size = 100,replace = F)
set.seed(456)
part2 <- sample(1:300,size = 100,replace = F)
set.seed(666)
part3 <- sample(1:300,size = 100,replace = F)
set.seed(888)
part4 <- sample(1:300,size = 100,replace = F)
查看交集
# 查看四个集合的交集元素
intersect(intersect(part1,part2),intersect(part3,part4))
绘图并保存
# 加载ggvenn包--绘图用
library(ggvenn)
# 加载RColorBrewer--生成颜色用
library(RColorBrewer)
# 把四个集合的向量合并成一个列表
# 注意这里的PART1、PART2、PART3、PART4就是后续展现在图里的集合名称
vennlist1 <- list(PART1=part1,PART2=part2,PART3=part3,PART4=part4)
#绘制韦恩图
p <- ggvenn(vennlist1,
fill_color=c(brewer.pal(8, 'Set2')[2:5]), # 设置填充颜色
stroke_size=0.5, # 集合圆圈的线宽
set_name_size=3.3, # 集合名称的文本大小
digits = 0, # 小数点后保留位数
show_percentage = F # 是否展示每一部分所占的百分比
)
p
ggsave("venn.pdf",p,width = 4,height = 4)
绘图效果
image-20231202210108522.png
系列文章
R实用绘图--相关性热图
本期内容就到这里了,喜欢的小伙伴,欢迎点赞、转发、收藏哦!
关注数据之帆,成为一帆的原始粉丝,和一帆一起进步吧!