Skip to contents

Plot venn diagram as an independent function. It supports both data frame and list as input.

Usage

ggvenn(
  data,
  columns = NULL,
  show_elements = FALSE,
  show_percentage = TRUE,
  digits = 1,
  fill_color = c("blue", "yellow", "green", "red"),
  fill_alpha = 0.5,
  stroke_color = "black",
  stroke_alpha = 1,
  stroke_size = 1,
  stroke_linetype = "solid",
  set_name_color = "black",
  set_name_size = 6,
  text_color = "black",
  text_size = 4,
  label_sep = ",",
  count_column = NULL,
  show_outside = c("auto", "none", "always"),
  auto_scale = FALSE
)

Arguments

data

A data.frame or a list as input data.

columns

A character vector use as index to select columns/elements.

show_elements

Show set elements instead of count/percentage.

show_percentage

Show percentage for each set.

digits

The desired number of digits after the decimal point

fill_color

Filling colors in circles.

fill_alpha

Transparency for filling circles.

stroke_color

Stroke color for drawing circles.

stroke_alpha

Transparency for drawing circles.

stroke_size

Stroke size for drawing circles.

stroke_linetype

Line type for drawing circles.

set_name_color

Text color for set names.

set_name_size

Text size for set names.

text_color

Text color for intersect contents.

text_size

Text size for intersect contents.

label_sep

Separator character for displaying elements.

count_column

Specify column for element repeat count.

show_outside

Show outside elements (not belongs to any set).

Value

The ggplot object to print or save to file.

See also

geom_venn

Examples

library(ggvenn)

# use list as input
a <- list(`Set 1` = c(1, 3, 5, 7),
          `Set 2` = c(1, 5, 9),
          `Set 3` = c(1, 2, 8),
          `Set 4` = c(6, 7))
ggvenn(a, c("Set 1", "Set 2"))

ggvenn(a, c("Set 1", "Set 2", "Set 3"))

ggvenn(a)


# use data.frame as input
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"))

ggvenn(d, c("Set 1", "Set 2", "Set 3"))

ggvenn(d)


# set fill color
ggvenn(d, c("Set 1", "Set 2"), fill_color = c("red", "blue"))


# hide percentage
ggvenn(d, c("Set 1", "Set 2"), show_percentage = FALSE)


# change precision of percentages
ggvenn(d, c("Set 1", "Set 2"), digits = 2)


# show elements instead of count/percentage
ggvenn(a, show_elements = TRUE)

ggvenn(d, show_elements = "value")