It takes a loon widget and forms a matrix of loon widget facets.

l_facet(widget, by, on, layout = c("grid", "wrap", "separate"), ...)

# S3 method for loon
l_facet(
widget,
by,
on,
layout = c("grid", "wrap", "separate"),
connectedScales = c("cross", "row", "column", "both", "x", "y", "none"),
nrow = NULL,
ncol = NULL,
inheritLayers = TRUE,
labelLocation = c("top", "right"),
labelBackground = "gray80",
labelForeground = "black",
labelBorderwidth = 2,
labelRelief = c("groove", "flat", "raised", "sunken", "ridge", "solid"),
plotWidth = 200,
plotHeight = 200,
parent = NULL,
...
)

# S3 method for l_serialaxes
l_facet(
widget,
by,
on,
layout = c("grid", "wrap", "separate"),
nrow = NULL,
ncol = NULL,
labelLocation = c("top", "right"),
labelBackground = "gray80",
labelForeground = "black",
labelBorderwidth = 2,
labelRelief = c("groove", "flat", "raised", "sunken", "ridge", "solid"),
plotWidth = 200,
plotHeight = 200,
parent = NULL,
...
)

## Arguments

widget A loon widget loon plot can be separated by some variables into mutiple panels. This argument can take a vector, a list of same lengths or a data.frame as input. if the by is a formula, an optional data frame containing the variables in the by. If variables in by is not found in data, the variables are taken from environment(formula), typically the environment from which the function is called. layout facets as 'grid', 'wrap' or 'separate' named arguments to modify the loon widget states Determines how the scales of the facets are to be connected depending on which layout is used. For each value of layout, the scales are connected as follows: layout = "wrap": Across all facets, when connectedScales is "x", then only the "x" scales are connected "y", then only the "y" scales are connected "both", both "x" and "y" scales are connected "none", neither "x" nor "y" scales are connected. For any other value, only the "y" scale is connected. layout = "grid": Across all facets, when connectedScales is "cross", then only the scales in the same row and the same column are connected "row", then both "x" and "y" scales of facets in the same row are connected "column", then both "x" and "y" scales of facets in the same column are connected "x", then all of the "x" scales are connected (regardless of column) "y", then all of the "y" scales are connected (regardless of row) "both", both "x" and "y" scales are connected in all facets "none", neither "x" nor "y" scales are connected in any facets. A linkingGroup for widgets. If missing, default would be a paste of "layout" and the current tk path number. The number of layout rows The number of layout columns Logical value. Should widget layers be inherited into layout panels? Labels location. Length two vector for layout grid. The first one is used to determine the position of column labels ('top' or 'bottom'). The second one is used to determine the position of row labels ('right' or 'left'). Length one vector for layout wrap, 'top' or 'bottom'. Label background colour Label foreground colour Label border width Label relief default plot width (in pixels) default plot height (in pixels) a valid Tk parent widget path. When the parent widget is specified (i.e. not NULL) then the plot widget needs to be placed using some geometry manager like tkpack or tkplace in order to be displayed. See the examples below.

## Value

an l_facet object (an l_compound object), being a list with named elements, each representing a separate interactive plot. The names of the plots should be self explanatory and a list of all plots can be accessed from the l_facet object via l_getPlots().

## Examples

if(interactive()) {
library(maps)
p <- with(quakes, l_plot(long, lat, linkingGroup = "quakes"))
p["color"][quakes$mag < 5 & quakes$mag >= 4] <- "lightgreen"
p["color"][quakes$mag < 6 & quakes$mag >= 5] <- "lightblue"
p["color"][quakes$mag >= 6] <- "firebrick" # A Fiji map NZFijiMap <- map("world2", regions = c("New Zealand", "Fiji"), plot = FALSE) l_layer(p, NZFijiMap, label = "New Zealand and Fiji", color = "forestgreen", index = "end") fp <- l_facet(p, by = "color", layout = "grid", linkingGroup = "quakes") size <- c(rep(50, 2), rep(25, 2), rep(50, 2)) color <- c(rep("red", 3), rep("green", 3)) p <- l_plot(x = 1:6, y = 1:6, size = size, color = color) g <- l_glyph_add_text(p, text = 1:6) p['glyph'] <- g on <- data.frame(Factor1 = c(rep("A", 3), rep("B", 3)), Factor2 = rep(c("C", "D"), 3)) cbind(on, size = size, color = color) fp <- l_facet(p, by = Factor1 ~ Factor2, on = on) } if(interactive()) { # serialaxes facets s <- l_serialaxes(iris[, -5], color = iris$Species)
fs <- l_facet(s, layout = "wrap", by = iris\$Species)
# The linkingGroup can be printed or accessed by