韦恩图的画法实在是太多了,今天再介绍一个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(1, 3, 5, 7, 9),
`Set 2` = c(1, 5, 9, 13),
`Set 3` = c(1, 2, 8, 9),
`Set 4` = c(6, 7, 10, 12))
两个集合:
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, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE),
`Set 2` = c(TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE),
`Set 3` = c(TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE),
`Set 4` = c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE))
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
,
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
好用。