l_tour | R Documentation |
An interactive tour in loon
l_tour(
data,
scaling = c("data", "variable", "observation", "sphere"),
by = NULL,
on,
as.l_tour = TRUE,
color = loon::l_getOption("color"),
tour_path = tourr::grand_tour(),
group = "color",
start = NULL,
slicing = FALSE,
slicingDistance = NULL,
numOfTours = 30L,
interpolation = 40L,
parent = NULL,
envir = parent.frame(),
...
)
data |
a data frame with numerical data only |
scaling |
one of 'variable', 'data', 'observation', 'sphere', or 'none' to specify how the data is scaled. See Details |
by |
loon plot can be separated by some variables into multiple panels.
This argument can take a |
on |
if the |
as.l_tour |
return a |
color |
vector with line colors. Default is given by |
tour_path |
tour path generator, defaults to 2d grand tour |
group |
only used for layers. As we scroll the bar, the layers are re-calculated. This argument is used to specify which state is used to set groups (i.e. "color", "linewidth", etc). |
start |
projection to start at, if not specified, uses default associated with tour path |
slicing |
whether to show a sliced scatter plot |
slicingDistance |
the slicing distance that if the distance between
points and the projected plane is less than this distance, points will be
preserved; else points will be invisible. The default is |
numOfTours |
the number of tours |
interpolation |
the steps between two serial projections. The larger the value is, the smoother the transitions would be. |
parent |
a valid Tk parent widget path. When the parent widget is
specified (i.e. not |
envir |
the |
... |
named arguments to modify the serialaxes states or layouts, see details. |
tour_path is a tour generator; available tours are grand_tour
,
dependence_tour
, frozen_tour
, guided_tour
,
planned_tour
, and etc
Argument as.l_tour
If set to TRUE
, the function returns an l_tour
(or an l_tour_compound
) object. Essentially, this object is a list with the first element being a loon
(Tcl) widget and the second element a matrix of projection vectors. The advantage of this setup is that the matrix of projection vectors can be easily accessed using the `[`
function (or the l_cget
function). However, a limitation is that it does not constitute a valid loon
(Tcl) widget-calling l_isLoonWidget
would return FALSE
. Consequently, many of loon's functionalities remain inaccessible.
If set to FALSE
, the function returns either a loon
(Tcl) widget (where calling l_isLoonWidget
would return TRUE
) or an l_compound
object. In this case, the matrix of projection vectors is not directly accessible from it. However, the l_getProjection
function can be used to retrieve an estimated matrix of projection vectors.
The scaling
state defines how the data is scaled. The axes display 0 at one end and 1 at the other. For the following explanation assume that the data is in a n x p dimensional matrix. The scaling options are then
variable | per column scaling |
observation | per row scaling |
data | whole matrix scaling |
sphere | transforming variables to principal components |
The default slidingDistance
is suggested by Laa, U., Cook, D., & Valencia, G. (2020).
First, find the maximum Euclidean distance of each observation (centralized), say maxD
.
Then, compute the "relative volume" that vRel
= (maxD
^(d - 2))/10, where d
is the dimension of this data set. In the end, the suggested slidingDistance
is given by vRel
^(1/(d - 2))
an l_tour
or an l_tour_compound
object that
one can query the loon
states and a matrix projection vectors
l_getProjection
if(interactive() && requireNamespace('tourr')) {
# 2D projection
fl <- tourr::flea[, 1:6]
# different scaling will give very different projections
# in this dataset, scaling 'variable' will give the best separation
p <- l_tour(fl, scaling = 'variable',
color = tourr::flea$species)
l0 <- l_layer_hull(p, group = p["color"],
color = "red", linewidth = 4)
l1 <- l_layer_density2d(p)
# a `l_tour` object
class(p)
# query the matrix of projection vectors
proj <- p['projection'] # or `l_getProjection(p)`
# suppose the scaling is still 'observation'
new_xy <- as.matrix(
loon::l_getScaledData(data = fl,
scaling = 'observation')) %*%
proj
plot(new_xy, xlab = "V1", ylab = "V2",
col = loon::hex12tohex6(p['color']))
# A higher dimension projection
# turn the `tour` to 4 dimensional space
s <- l_tour(fl, color = tourr::flea$species,
scaling = "observation",
tour_path = tourr::grand_tour(4L))
# set `as.l_tour` FALSE
p <- l_tour(fl, scaling = 'observation',
color = tourr::flea$species)
class(p)
## ERROR
## p["projection"]
# query the estimated matrix of projection vectors
l_getProjection(p)
##### facet by region
olive <- tourr::olive
p <- with(olive, l_tour(olive[, -c(1, 2)],
by = region,
color = area))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.