View source: R/stat-format-table.R
stat_fmt_tb | R Documentation |
data
stat_fmt_tb
selects, reorders and/or renames columns and
or rows of a tibble nested in data
. It can also apply user supplied
functions to data columns. This stat is intended to be used to pre-process
tibble
objects mapped to the label
aesthetic before adding
them to a plot with geom_table
.
stat_fmt_tb(
mapping = NULL,
data = NULL,
geom = "table",
tb.vars = NULL,
tb.rows = NULL,
tb.funs = list(),
digits = 3,
position = "identity",
table.theme = NULL,
table.rownames = FALSE,
table.colnames = TRUE,
table.hjust = 0.5,
parse = FALSE,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = TRUE,
...
)
mapping |
The aesthetic mapping, usually constructed with
|
data |
A layer specific dataset - only needed if you want to override the plot defaults. |
geom |
The geometric object to use display the data |
tb.vars , tb.rows |
character or numeric vectors, optionally named, used to select and/or rename the columns or rows in the table returned. |
tb.funs |
named list of functions to be applied to |
digits |
integer indicating the number of significant digits to be
retained in data. Use |
position |
The position adjustment to use for overlapping points on this layer |
table.theme |
NULL, list or function A 'gridExtra' |
table.rownames , table.colnames |
logical flag to enable or disabling printing of row names and column names. |
table.hjust |
numeric Horizontal justification for the core and column headings of the table. |
parse |
If |
na.rm |
a logical indicating whether |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
... |
other arguments passed on to |
One or more functions to be applied can be passed in a named list to parameter 'tb.funs'. Functions are matched by name to columns, after column selection and renaming have been applied.
A plot layer instance. Using as output data
a copy of the
input data
in which the data frames mapped to label
have been
modified.
The output of sequentially applying
slice
with tb.rows
as argument and
select
with tb.vars
to a list variable
list mapped to label
and containing a single tibble per row
in data
.
See geom_table
for details on how tables respond
to mapped aesthetics and table themes. For details on predefined table
themes see ttheme_gtdefault
.
my.df <-
tibble::tibble(
x = c(1, 2),
y = c(0, 4),
group = c("A", "B"),
tbs = list(a = tibble::tibble(Xa = 1:6, Y = rep(c("x", "y"), 3)),
b = tibble::tibble(Xb = 1:3, Y = "x"))
)
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb() +
expand_limits(x = c(0,3), y = c(-2, 6))
# Hide column names, diplay row names
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(table.colnames = FALSE,
table.rownames = TRUE) +
expand_limits(x = c(0,3), y = c(-2, 6))
# Use a theme for the table
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(table.theme = ttheme_gtlight) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection and renaming by column position
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = 1, group = 2),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))
# apply functions to columns
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = 1, group = 2),
tb.rows = 1:3,
tb.funs = list(group = function(x) {sprintf("italic(%s)", x)},
value = function(x) {ifelse(x > 2, "bold(zz)", x)}),
parse = TRUE) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection, reordering and renaming by column position
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(group = 2, value = 1),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection and renaming, using partial matching to column name
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = "X", group = "Y"),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.