问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

R实用绘图--韦恩图

创作时间:
作者:
@小白创作中心

R实用绘图--韦恩图

引用
CSDN
1.
https://blog.csdn.net/weixin_46587777/article/details/138032158

今天带领大家绘制的是韦恩图(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)

绘图效果

绘图效果

系列文章


R实用绘图--相关性热图

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号