R/uvcharts.R

Defines functions uv_charts uv_bar uv_line uv_area uv_stackbar uv_stackarea uv_pie uv_donut uv_percentbar uv_percentarea uv_stepupbar uv_polar uv_waterfall uvchartsOutput renderUvcharts

Documented in renderUvcharts uv_area uv_bar uv_charts uvchartsOutput uv_donut uv_line uv_percentarea uv_percentbar uv_pie uv_polar uv_stackarea uv_stackbar uv_stepupbar uv_waterfall

#' Setup a uvchart
#'
#' Initiate a uvchart
#'
#' @param data data.frame of data to plot.
#' @param x \code{x} variable.
#' @param type type of chart to plot, see details.
#' @param width,height Must be a valid CSS unit (like \code{'100\%'},
#'   \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a
#'   string and have \code{'px'} appended.
#' @param elementId id of div element containing chart.
#'
#' @import htmlwidgets
#' @importFrom stats complete.cases
#' @rdname uv_charts
#'
#' @examples
#' mtcars %>%
#'   uv_charts(mpg, type = "Area") %>%
#'   uv_add(qsec)
#'
#' mtcars %>%
#'   uv_bar(mpg) %>%
#'   uv_add(qsec)
#'
#' mtcars %>%
#'   uv_line(mpg) %>%
#'   uv_add(qsec)
#'
#' mtcars %>%
#'   uv_pie(mpg) %>%
#'   uv_add(qsec)
#'
#' mtcars %>%
#'   uv_stackbar(mpg) %>%
#'   uv_add(qsec)
#'
#' mtcars %>%
#'   uv_percentarea(mpg) %>%
#'   uv_add(qsec)
#'
#' @export
uv_charts <- function(data, x, type = "Line", width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, type, width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_bar <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Bar", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_line <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Line", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_area <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Area", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_stackbar <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "StackedBar", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_stackarea <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "StackedArea", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_pie <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Pie", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_donut <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Donut", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_percentbar <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "PercentBar", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_percentarea <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "PercentArea", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_stepupbar <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "StepUpBar", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_polar <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "PolarArea", width, height, elementId)
}

#' @inheritParams uv_charts
#' @rdname uv_charts
#' @export
uv_waterfall <- function(data, x, width = "100%", height = "100%", elementId = NULL) {

  ucharts(data, x, "Waterfall", width, height, elementId)
}

#' Shiny bindings for uvcharts
#'
#' Output and render functions for using uvcharts within Shiny
#' applications and interactive Rmd documents.
#'
#' @param outputId output variable to read from
#' @param width,height Must be a valid CSS unit (like \code{'100\%'},
#'   \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a
#'   string and have \code{'px'} appended.
#' @param expr An expression that generates a uvcharts
#' @param env The environment in which to evaluate \code{expr}.
#' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This
#'   is useful if you want to save an expression in a variable.
#'
#' @name uvcharts-shiny
#'
#' @export
uvchartsOutput <- function(outputId, width = '100%', height = '400px'){
  htmlwidgets::shinyWidgetOutput(outputId, 'uvcharts', width, height, package = 'uvcharts')
}

#' @rdname uvcharts-shiny
#' @export
renderUvcharts <- function(expr, env = parent.frame(), quoted = FALSE) {
  if (!quoted) { expr <- substitute(expr) } # force quoted
  htmlwidgets::shinyRenderWidget(expr, uvchartsOutput, env, quoted = TRUE)
}
JohnCoene/uvcharts documentation built on May 7, 2019, 11:59 a.m.