metaplot {metaplot} | R Documentation |
Metaplot
Description
Metaplot creates univariate, bivariate, or multivariate plots depending on the number and types of variables represented by the anonymous arguments. Types are either numeric (NUM, e.g. real, integer) or categorical (CAT, e.g. factor, character). A variable stored as numeric that nonetheless has an encode
d guide
attribute will be treated as categorical. Mnemonic: x %>% metaplot(yvars, xvar, groupvar, facets)
where arguments are unquoted column names, and only xvar is required. Column attributes label
, guide
, reference
, and symbol
modify the behavior of the default handlers.
Usage
metaplot(x, ...)
Arguments
x |
object |
... |
passed arguments |
Details
Design your plot by specifying y variables (optional), the x variable, the groups variable (optional) and the conditioning variables (i.e., facets, optional).
The single groups variable, if any, is the first categorical in the third position or later. An earlier categorical gives a "mixed" bivariate plot or mosaic plot, depending on the type of the remaining variable.
The x variable is the last variable before groups, if present.
The y variables are those before x. If none, the result is univariate. If one, the result is typically a boxplot or scatterplot, depending on x. Several numeric y followed by a numeric x are treated as multivariate (scatterplot matrix). But if all y have the same guide
attribute and it is different from that for x, the result is bivariate (i.e, an overlay
scatterplot).
A single categorical variable results in a simple mosaic plot (see link[graphics]{mosaicplot}
and vcd for more sophisticated treatment). Mosaic plots support only a single y variable; thus, whenever the first two variables are categorical, a two-way mosaic plot results, with remaining variables understood as groups and facets.
Wherever a groups argument is meaningful, it may be missing. This allows specification of facets in the absence of groups, e.g., (metaplot(y, x, , facet1, facet2))
. For multiple y (overlay), the sources of y are the implied groups: any trailing categorical arguments are treated as facets.
Template designs follow; substitute behaviors by setting global options (see argument list).
- NUM:
univariate (densityplot)
- CAT:
categorical (one-way mosaic plot)
- CAT, CAT:
categorical (two-way mosaic plot)
- CAT, CAT, CAT:
grouped mosaic
- CAT, CAT, CAT, CAT:
grouped mosaic with one facet
- CAT, CAT, CAT,, CAT:
non-grouped mosaic with one facet
- NUM, CAT:
mixedvariate (vertical boxplot)
- CAT, NUM:
mixedvariate (horizontal boxplot)
- CAT, NUM, CAT:
mixedvariate with one facet
- NUM, NUM:
bivariate (scatterplot)
- NUM, NUM, CAT:
grouped bivariate (grouped scatterplot)
- NUM, NUM,, CAT:
non-grouped bivariate with one facet
- NUM, NUM, CAT, CAT:
grouped bivariate with one facet
- NUM, NUM, CAT, CAT, CAT:
grouped bivariate with two facets
- NUM, NUM, NUM:
multivariate, or grouped bivariate for
overlay
- NUM, NUM, NUM, CAT
multivariate, or faceted bivariate for
overlay
- NUM, NUM, NUM, CAT, CAT
multivariate, or bivariate with two facets for
overlay
Variable attributes may be supplied by conventional means; pack
and unpack
support storing and retrieving scalar column attributes. The following scalar attributes are currently supported.
- label:
A variable descriptor. If present, panel functions will use label to create informative axis labels. See
axislabel
.- guide:
Units for a numeric variable, or an encoding (scalar string giving codes and possibly decodes) for a categorical item. If present, units will be used to inform the corresponding axis label (
axislabel
). If present, codes will be used to impose sort order on categorical variables. If present, decodes will be used as substitutes for stored values when presenting categorical labels, legends, and facet names. For more on encodings, seeencode
.- reference:
Some variables have values to which they can be compared. For example, residual error is often expected to be centered at zero. Default panel functions plot corresponding reference lines if this attribute is present. See for example
dens_panel
.- symbol:
Variable names are useful for programming, and variable labels are useful as axis labels. A symbol can be more formal than a variable name and more compact than a label. For example,
diag_label
will use variable names as labels for the diagonal panels of a scatterplot matrix; but it will prefer labels, if available; and will prefer symbols most of all. Markup rules for symbols are given inwikisym2plotmath_
.
See Also
Other generic functions:
axislabel()
,
categorical()
,
corsplom()
,
densplot()
,
pack()
,
scatter()
,
test_metaplot()
,
unpack()
Other metaplot:
boxplot_data_frame()
,
categorical_data_frame()
,
corsplom_data_frame()
,
densplot_data_frame()
,
metaplot_key()
,
scatter_data_frame()
,
test_metaplot()
Examples
library(magrittr)
library(dplyr)
library(csv)
x <- as.csv(system.file(package = 'metaplot', 'extdata/theoph.csv'))
x %<>% pack
# setOption(gg = TRUE)
# setOption(verbose = TRUE) # all messages; equiv. to metaplot(verbose = T,...)
# setOption(verbose_densplot = TRUE) # densplot messages
# sample plots
x %>% metaplot(sres)
x %>% metaplot(site)
x %>% metaplot(conc, arm)
x %>% densplot(conc, arm)
x %>% metaplot(arm, conc)
x %>% metaplot(conc, arm, site)
x %>% metaplot(conc, site, arm)
x %>% metaplot(conc, time)
x %>% metaplot(arm, site)
x %>% metaplot(arm, site, cohort)
x %>% metaplot(arm, site, cohort, space = 'top')
x %>% metaplot(arm, site, , cohort)
x %>% metaplot(conc, time, subject)
x %>% metaplot(conc, time, , subject)
x %>% metaplot(conc, time, subject, site)
x %>% metaplot(conc, time, subject, site, arm)
x %>% metaplot(lKe, lKa, lCl)
x %>% metaplot(
lKe, lKa, lCl,
col = 'black',smooth.col = 'red', pin.col = 'red',
dens.col='blue',dens.alpha = 0.1
)
x %>% metaplot(conc, pred, ipred, time, space = 'top')
x %>% metaplot(conc, pred, ipred, time, subject, space = 'top')
x %>% metaplot(conc, pred, ipred, time, subject,
colors = c('black','blue','orange'),
points = c(0.9,0, 0.4),
lines = c(F,T,T),
types = c('blank','dashed','solid'),
space = 'top'
)
x %>% metaplot(conc, ipred, time, site, arm, space = 'top')
x %>% metaplot(res, conc, yref = 0, ysmooth = T, conf = T, grid = T, loc = 1)
x %>% metaplot(res, conc, arm, ysmooth = T, conf = T )
x %>% metaplot(res, conc, arm, ysmooth = T, conf = T, global = T, ref.col = 'red')
x %>% metaplot(subject,conc)
# manage metadata
attr(x$arm, 'guide') # //1/Arm A//2/Arm B//
x %>% metaplot(conc, arm) # default
x %>% mutate(arm = arm %>%
structure(guide = '//2/Arm B//1/Arm A//')) %>%
metaplot(conc, arm) # different presentation order
x %>% mutate(arm = arm %>%
structure(guide = '//1/Both Arms//2/Both Arms//')) %>%
metaplot(conc, arm) # collapse cases