R/plot_density_facet.R

Defines functions plot_density_facet

Documented in plot_density_facet

#' plot_density_facet
#'
#' Plot a density plot based on a factor.
#'
#' @param df_ data frame or tibble
#' @param factor_ qualitative variable
#' @param value_var response variable
#' @param xlab xlab
#' @param ylab ylab
#' @param my_title title
#' @param lty_var lty variable to
#' @param alpha_ transparency
#' @param adjust_ smoothing parameter
#' @param facet_var_col factor variable for facetting
#' @param facet_var_row factor variable for facetting
#'
#' @return
#' @export
#'
#' @examples
#' plot_density_facet(pbmc_div_mut, "label_subtype", "mutations")
plot_density_facet <- function(df_, factor_, value_var, lty_var=NULL, facet_var_row=NULL, facet_var_col=NULL, adjust_=1, alpha_=0.5, xlab=NULL, ylab=NULL, my_title=NULL) {
  my_theme <- igfuns::my_theme()

  if (is.null(lty_var)) {
    p <-
      ggplot(df_, aes(x=!!sym(value_var), color=!!sym(factor_)))
  } else {
    p <-
      ggplot(df_, aes(x=!!sym(value_var), lty=!!sym(lty_var), color=!!sym(factor_)))
  }
  p <-
    p +
    geom_density(alpha=alpha_, adjust=adjust_) +
    my_theme
  if (!is.null(facet_var_col) && !is.null(facet_var_row)) {
    p <- p +  facet_grid(cols = vars(!!sym(facet_var_col)),
                         rows = vars(!!sym(facet_var_row)))
  } else if (!is.null(facet_var_col)) {
    p <- p + facet_grid(cols = vars(!!sym(facet_var_col)))
  } else if (!is.null(facet_var_row)) {
    p <- p + facet_grid(rows = vars(!!sym(facet_var_row)))
  }

  if (!is.null(xlab))
    p <- p + xlab(xlab)
  if (!is.null(ylab))
    p <- p + ylab(ylab)
  if (!is.null(my_title))
    p <- p + ggtitle(my_title)
  p
}
thierrycnam/igfuns documentation built on May 4, 2020, 3:21 a.m.