Create a loon widget with ggplot syntax

l_ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())

Arguments

data

Default dataset to use for plot. If not already a data.frame, will be converted to one by fortify(). If not specified, must be supplied in each layer added to the plot.

mapping

Default list of aesthetic mappings to use for plot. If not specified, must be supplied in each layer added to the plot.

...

Other arguments passed on to methods. Not currently used.

environment

DEPRECATED. Used prior to tidy evaluation.

Value

It will return an l_ggplot object with class c("l_ggplot", "gg", "ggplot"). Then print a loon plot automatically.

Details

function l_ggplot() wraps function ggplot() with assigning an additional class "l_ggplot" to the output. The returned object is called an l_ggplot object. To draw a ggplot object, S3 method print.ggplot will be rendered so that a static graphic is displayed. While, for an l_ggplot() object, S3 method print.l_ggplot will be rendered which will return an interactive loon widget.

Examples

if(interactive()) {
p <- l_ggplot(mpg, aes(displ, cty)) +
    geom_point(
      size = 4,
      mapping = aes(color = factor(cyl))
    )
# p is an `l_ggplot` object, `print.l_ggplot(p)` will be called automatically.
# Then, at printing time, an `l_ggplot` object will be transformed to a `loon` widget
p

if (FALSE) {
# Assign a widget from current path
# suppose the path of `p` is '.l0.ggplot'
q <- l_getFromPath('.l0.ggplot')
# q is a `loon` widget
q
}

# An alternative way to return a real loon widget from `p` (a `l_ggplot` object)
# is to call the function `loon.ggplot()`.
q <- loon.ggplot(p)
q

# pipe more components
p +
  facet_grid(rows = vars(drv)) +
  linking(linkingGroup = "mpg") +
  ggtitle("displ versus cty")
# a linked bar plot
l_hist(mpg$class, linkingGroup = "mpg")

# a 3D object
# press the button key `R` to rotate the plot
l_ggplot(mtcars,
         mapping = aes(x = wt, y = hp, z = drat)) +
   geom_point(size = 4) +
   scale_multi()
}