The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Venn Diagram by ggplot2, with really easy-to-use API. This package is inspired by Venny
install.packages("ggvenn") # install via CRAN
or
if (!require(devtools)) install.packages("devtools")
devtools::install_github("yanlinlin82/ggvenn") # install via GitHub (for latest version)
This package supports both list
and
data.frame
type data as input.
For list
data (each element is a set):
library(ggvenn)
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")) # draw two-set venn
ggvenn(a, c("Set 1", "Set 2", "Set 3")) # draw three-set venn
ggvenn(a) # without set names, the first 4 elements in list will be chose to draw four-set venn
For data.frame
data (each logical column is a set):
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, c("Set 1", "Set 2")) # draw two-set venn
ggvenn(d, c("Set 1", "Set 2", "Set 3")) # draw three-set venn
ggvenn(d) # without set names, the first 4 logical column in data.frame will be chose to draw four-set venn
For data.frame
data, there is also another way to plot
in ggplot grammar:
# draw two-set venn (use A, B in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`)) +
geom_venn() + theme_void() + coord_fixed()
# draw three-set venn (use A, B, C in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`)) +
geom_venn() + theme_void() + coord_fixed()
# draw four-set venn (use A, B, C, D in aes)
ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`, D = `Set 4`)) +
geom_venn() + theme_void() + coord_fixed()
There are more options for customizing the venn diagram.
Tune the color and size
For filling:
fill_color
- default is c(“blue”, “yellow”, “green”,
“red”)fill_alpha
- default is 0.5For stroke:
stroke_color
- default is “black”stroke_alpha
- default is 1stroke_size
- default is 1stroke_linetype
- default is “solid”For set name:
set_name_color
- default is “black”set_name_size
- default is 6For text:
text_color
- default is “black”text_size
- default is 4All parameters above could be used in both ggvenn()
and
geom_venn()
.
For example:
a <- list(A = 1:4, B = c(1,3,5))
ggvenn(a, stroke_linetype = 2, stroke_size = 0.5,
set_name_color = "red", set_name_size = 15,
fill_color = c("pink", "gold"))
Show elements
show_elements
- default is FALSElabel_sep
- text used to concatenate elements, default
is “,”For example:
a <- list(A = c("apple", "pear", "peach"),
B = c("apple", "lemon"))
ggvenn(a, show_elements = TRUE)
ggvenn(a, show_elements = TRUE, label_sep = "\n") # show elements in line
Hide percentage
show_percentage
- default is TRUEFor example:
a <- list(A = 1:5, B = 1:2)
ggvenn(a, show_percentage = FALSE)
Change digits of percentage
digits
- default is 1For example:
a <- list(A = 1:5, B = 1:2)
ggvenn(a, digits = 2)
The ggvenn
support two types of input data: list and
data.frame. Two functions (data_frame_to_list()
and
list_to_data_frame()
) can convert data between the two
types.
<- list(A = 1:5, B = 4:6)
a <- tibble(key = 1:6,
d A = c(rep(TRUE, 5), FALSE),
B = rep(c(FALSE, TRUE), each = 3))
identical(a, data_frame_to_list(d)) # TRUE
identical(d, list_to_data_frame(a)) # TRUE
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.