R/plot_venn2.R

Defines functions plot_venn2

Documented in plot_venn2

#' Plots venn diagram from three samples
#'
#' @param a vector of names
#' @param b vector of names
#' @param names optional names vector
#'
#' @return
#' @export
#'
#' @importFrom eulerr euler
#'
plot_venn2 <- function(a, b, names) {

  if(!hasArg(a)) {
    a <- getData()
  }

  if(!hasArg(b)) {
    b <- getData()
  }


  if(ok("Would you like to add names?")) {
    names <- c()
    while(length(names) != 2) {
      names <- strsplit(readline("Please indicate names divided by a semicolon (;): "), split = ";")[[1]]
    }

  }

  else {
    names <- c("A", "B")
  }

  A <- length(setdiff(a, b))
  B <- length(setdiff(b, a))

  AB <- length(intersect(a, b))



  if(!hasArg(names)) {
    print(plot(x = euler(c("A" = A, "B" = B, "A&B" = AB, "D" = 100)),
               fills = list(fill = c("white", "white"), alpha = 0),
               edges = c("blue", "blue"),
               quantities = list(type = "counts")))
  }

  else {
    print(plot(x = euler(c("A" = A, "B" = B, "A&B" = AB, "D" = 100)),
               fills = list(fill = c("white", "white"), alpha = 0),
               edges = c("blue", "blue"),
               labels = names,
               quantities = list(type = "counts")))
  }

}
nicohuttmann/htmnanalysis documentation built on Dec. 6, 2020, 3:02 a.m.