查看原文
其他

ggvenn画韦恩图

阿越就是我 医学和生信笔记 2023-06-15
关注公众号,发送R语言python,可获取资料

💡专注R语言在🩺生物医学中的使用


韦恩图的画法实在是太多了,今天再介绍一个ggvenn,之前介绍过同类型的ggVenndiagram,但是对于边框颜色的更改不友好还介绍过一个非ggplot语法的venndiagram

安装

# 2选1
install.packages("ggvenn"

if (!require(devtools)) install.packages("devtools")
devtools::install_github("yanlinlin82/ggvenn"

使用

支持数据框和列表格式的输入数据。

列表

library(ggvenn)
## Warning: package 'ggvenn' was built under R version 4.2.1
## Loading required package: dplyr
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Loading required package: grid
## Loading required package: ggplot2
a <- list(`Set 1` = c(13579),
          `Set 2` = c(15913),
          `Set 3` = c(1289),
          `Set 4` = c(671012))

两个集合:

ggvenn(a, c("Set 1""Set 2"))
plot of chunk unnamed-chunk-3

三个集合:

ggvenn(a, c("Set 1""Set 2""Set 3")) 
plot of chunk unnamed-chunk-4

不写名字会自动选前4个集合:

ggvenn(a) 
plot of chunk unnamed-chunk-5

数据框形式

d <- tibble(value   = c(1,     2,     3,     5,     6,     7,     8,     9),
            `Set 1` = c(TRUE,  FALSETRUE,  TRUE,  FALSETRUE,  FALSETRUE),
            `Set 2` = c(TRUE,  FALSEFALSETRUE,  FALSEFALSEFALSETRUE),
            `Set 3` = c(TRUE,  TRUE,  FALSEFALSEFALSEFALSETRUE,  TRUE),
            `Set 4` = c(FALSEFALSEFALSEFALSETRUE,  TRUE,  FALSEFALSE))

ggvenn(d) # 不写名字也是默认选前4个集合
plot of chunk unnamed-chunk-6

对于tibble类型的数据还可以用ggplot2来画,data.frame的不行哦~

ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`, D = `Set 4`)) +
  geom_venn() + theme_void() + coord_fixed()
plot of chunk unnamed-chunk-7

细节修改

  • 填充色
    • fill_color:填充色,默认是"blue", "yellow", "green", "red"
    • fill_alpha:填充透明度,默认0.5
  • 边框色
    • stroke_color:边框色,默认黑色
    • stroke_alpha:边框透明度,默认1
    • stroke_size:边框粗细,默认1
    • stroke_linetype:边框线的类型默认solid
  • 集合名字
    • set_name_color:集合名颜色,默认black
    • set_name_size:集合名字号,默认6
  • 集合内文本
    • text_color:文本颜色,默认black
    • text_size:文本字号,默认4
  • 百分比
    • show_percentage:TRUE or FALSE
  • 显示元素
    • show_elements:显示集合内元素,默认FALSE
    • label_sep:元素分隔符,默认是,
  • 小数点位数
    • digits:默认是1
a <- list(A = c("apple""pear""peach"),
          B = c("apple""lemon"))
ggvenn(a, show_elements = TRUE)
plot of chunk unnamed-chunk-8
ggvenn(a, show_elements = TRUE, label_sep = "\n")  # show elements in line
plot of chunk unnamed-chunk-8

简单方便,貌似比ggVennDiagram好用。





获取更多信息,欢迎加入🐧QQ交流群:613637742


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


往期回顾




简单的韦恩图画法


ggplot2版本的韦恩图画法


韦恩图进阶!upset plot 01


韦恩图进阶!complexheatmap包画upset plot


韦恩图进阶!ggupset版upset plot


迄今为止最强大的upset plot R包,没有之一!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存