inst/doc/loonPlotsAndGridGraphics.R

## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, 
                      warning = FALSE,
                      message = FALSE,
                      fig.align = "center", 
                      fig.width = 6, 
                      fig.height = 5,
                      out.width = "60%", 
                      tidy.opts = list(width.cutoff = 65),
                      tidy = FALSE)
library(loon)
library(grid)
library(gridExtra)

imageDirectory <- file.path(".", "images", "loonPlotsAndGridGraphics")
# dataDirectory <- file.path(".", "data", "loonPlotsAndGridGraphics")

## ----loon plot, eval = FALSE--------------------------------------------------
#  library(loon)
#  p <- with(mtcars, l_plot(mpg, hp,
#                           size = 8,
#                           showScales = TRUE))

## ----query, eval = FALSE------------------------------------------------------
#  # x coordinates
#  p['x']

## ---- eval = FALSE------------------------------------------------------------
#  # point size
#  p['size']

## ----plot, eval = FALSE-------------------------------------------------------
#  # `p` is a loon widget
#  plot(p)

## ---- fig.align="center", echo=FALSE------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotp.png"))

## ----save plot draw, eval = FALSE---------------------------------------------
#  g0 <- plot(p)

## ----save plot, eval = FALSE--------------------------------------------------
#  g0 <- plot(p, draw = FALSE)

## ----loonGrob, eval = FALSE---------------------------------------------------
#  g0 <- loonGrob(p)

## ----draw graphics, eval = FALSE----------------------------------------------
#  library(grid)
#  grid.newpage()
#  grid.draw(g0)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg0.png"))

## ---- eval = FALSE------------------------------------------------------------
#  oldColor <- p["color"]
#  set.seed(3141)
#  selection <- sample(c(TRUE, FALSE),
#                      size = length(oldColor),
#                      replace = TRUE)
#  p["color"]  <- selection
#  gtrans <- loonGrob(p)
#  p["active"] <- selection
#  gauto <- loonGrob(p)
#  p["active"] <- !selection
#  gmanual <- loonGrob(p)
#  p["active"] <- TRUE
#  p["color"] <- oldColor

## ---- eval=FALSE--------------------------------------------------------------
#  library(gridExtra)
#  grid.newpage()
#  grid.arrange(g0, gtrans, gauto, gmanual, nrow = 2)

## ----  echo=FALSE, out.width = "80%"------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "gridArrange.png"))

## ----class, eval = FALSE------------------------------------------------------
#  class(g0)

## ----grob data structure, eval = FALSE----------------------------------------
#  grid.ls(g0)

## ----hierarchy, out.width= "80%", fig.align="center", echo=FALSE--------------
knitr::include_graphics(file.path(imageDirectory, "loonGrobNestedDataTree.png"))

## ----getGrob, eval = FALSE----------------------------------------------------
#  # retrieve xlabel grob
#  xlabelGrob <- getGrob(g0, "x label")
#  xlabelGrob

## ---- eval = FALSE------------------------------------------------------------
#  class(xlabelGrob)

## ---- eval = FALSE------------------------------------------------------------
#  names(xlabelGrob)

## ---- eval = FALSE------------------------------------------------------------
#  xlabelGrob$label

## ---- eval = FALSE------------------------------------------------------------
#  xAxisGrob <- getGrob(g0, "x axis")
#  names(xAxisGrob)

## ---- eval = FALSE------------------------------------------------------------
#  names(xAxisGrob$children)

## ----editGrob, eval = FALSE---------------------------------------------------
#  newGrob = editGrob(xlabelGrob,
#                     label = "Miles per (US) gallon")

## ----editGrob return, eval = FALSE--------------------------------------------
#  class(newGrob)

## ----more meaningful label, eval = FALSE--------------------------------------
#  newGrob$label

## ----modify grob, eval = FALSE------------------------------------------------
#  g0 <- setGrob(gTree = g0,
#                gPath = "x label",
#                newGrob = newGrob)

## ----redraw, eval = FALSE-----------------------------------------------------
#  grid.newpage()
#  grid.draw(g0)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg0Xlabel.png"))

## ----alpha, eval = FALSE------------------------------------------------------
#  pathGrob <- "points: primitive glyphs"
#  newLoonPointsGrob <-
#    editGrob(
#      getGrob(g0, pathGrob),
#      gp = gpar(fill = as_hex6color(p['color']),
#                col = l_getOption("foreground"),
#                fontsize = 20, # give a larger point size,
#                alpha = 0.3 # turn color transparent
#                )
#      )
#  # update loon points grob
#  g0 <- setGrob(
#    gTree = g0,
#    gPath = "points: primitive glyphs",
#    newGrob = newLoonPointsGrob
#  )
#  grid.newpage()
#  grid.draw(g0)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg0Alpha.png"))

## ---- eval = FALSE------------------------------------------------------------
#  titleGrob <- getGrob(g0, "title: textGrob arguments")
#  titleGrob$label

## ---- eval = FALSE------------------------------------------------------------
#  class(titleGrob)

## ---- eval = FALSE------------------------------------------------------------
#  g1 <- l_instantiateGrob(g0, "title: textGrob arguments",
#                          label = "1974 Motor Trend cars data",
#                          gp = gpar(col = "blue",
#                                    fontsize = 8))
#  grid.newpage()
#  grid.draw(g1)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg1.png"))

## ---- eval = FALSE------------------------------------------------------------
#  g2 <- l_instantiateGrob(g0, "title: textGrob arguments",
#                          label = "1974 Motor Trend cars data",
#                          gp = gpar(col = "red"))
#  g2 <- l_setGrobPlotView(g2)
#  grid.newpage()
#  grid.draw(g2)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg2.png"))

## ---- eval = FALSE------------------------------------------------------------
#  p['showLabels'] <- FALSE
#  g3 <- loonGrob(p)
#  grid.newpage()
#  grid.draw(g3)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg3.png"))

## ---- eval = FALSE------------------------------------------------------------
#  grid.ls(g3)

## ---- eval = FALSE------------------------------------------------------------
#  g4 <-l_instantiateGrob(g3,
#                         "title: textGrob arguments",
#                         x = unit(8, "native"),
#                         just = "left",
#                         label = "Motor Trend Magazine 1974")
#  
#  g4 <-l_instantiateGrob(g4,
#                         "x label: textGrob arguments",
#                         label = "Miles per US gallon",
#                         x = unit(35, "native"),
#                         y = unit(-1.5, "lines"),
#                         just = "right",
#                         gp = gpar(fontsize = 15,
#                                   fontface = "italic",
#                                   col = "blue"))
#  
#  g4 <-l_instantiateGrob(g4,
#                         "y label: textGrob arguments",
#                         label = "Horse power",
#                         rot = 45,
#                         x = unit(7, "native"),
#                         y = unit(275, "native"),
#                         just = "right",
#                         gp = gpar(fontsize = 15,
#                                   fontface = "italic",
#                                   col = "blue"))
#  
#  g4 <- l_setGrobPlotView(g4)
#  grid.newpage()
#  grid.draw(g4)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg4.png"))

## ---- eval = FALSE------------------------------------------------------------
#  # add text glyph
#  carNames <- l_glyph_add_text(p, text = rownames(mtcars))
#  p['glyph'] <- carNames
#  # loonGrob
#  g2 <- loonGrob(p)
#  getGrob(g2, "points: mixed glyphs")

## ---- eval = FALSE------------------------------------------------------------
#  grid.newpage()
#  grid.draw(g2)

## ----  echo=FALSE-------------------------------------------------------------
knitr::include_graphics(file.path(imageDirectory, "loonPlotg2Text.png"))

Try the loon package in your browser

Any scripts or data that you put into this service are public.

loon documentation built on July 9, 2023, 5:48 p.m.