Generates a response plot for a given response and x variables.
This module allows users customize and add annotations to the plot depending
on the module's arguments.
It supports showing the counts grouped by other variable facets (by row / column),
swapping the coordinates, show count annotations and displaying the response plot
as frequency or density.
Usage
tm_g_response(
label = "Response Plot",
response,
x,
row_facet = NULL,
col_facet = NULL,
coord_flip = FALSE,
count_labels = TRUE,
rotate_xaxis_labels = FALSE,
freq = FALSE,
plot_height = c(600, 400, 5000),
plot_width = NULL,
ggtheme = c("gray", "bw", "linedraw", "light", "dark", "minimal", "classic", "void"),
ggplot2_args = teal.widgets::ggplot2_args(),
pre_output = NULL,
post_output = NULL
)Arguments
- label
(
character(1)) Label shown in the navigation item for the module or module group. Formodules()defaults to"root". SeeDetails.- response
-
(
data_extract_specorlistof multipledata_extract_spec) Which variable to use as the response. You can define one fixed column by settingfixed = TRUEinside theselect_spec.The
data_extract_specmust not allow multiple selection in this case. - x
-
(
data_extract_specorlistof multipledata_extract_spec) Specifies which variable to use on the X-axis of the response plot. Allow the user to select multiple columns from thedataallowed in teal.The
data_extract_specmust not allow multiple selection in this case. - row_facet
(
data_extract_specorlistof multipledata_extract_spec) optional specification of the data variable(s) to use for faceting rows.- col_facet
(
data_extract_specorlistof multipledata_extract_spec) optional specification of the data variable(s) to use for faceting columns.- coord_flip
(
logical(1)) Indicates whether to flip coordinates betweenxandresponse. The default value isFALSEand it will show thexvariable on the x-axis and theresponsevariable on the y-axis.- count_labels
(
logical(1)) Indicates whether to show count labels. Defaults toTRUE.- rotate_xaxis_labels
(
logical) optional, whether to rotate plot X axis labels. Does not rotate by default (FALSE).- freq
(
logical(1)) Indicates whether to display frequency (TRUE) or density (FALSE). Defaults to density (FALSE).- plot_height
(
numeric) optional, specifies the plot height as a three-element vector ofvalue,min, andmaxintended for use with a slider UI element.- plot_width
(
numeric) optional, specifies the plot width as a three-element vector ofvalue,min, andmaxfor a slider encoding the plot width.- ggtheme
(
character) optional,ggplot2theme to be used by default. Defaults to"gray".- ggplot2_args
-
(
ggplot2_args) object created byteal.widgets::ggplot2_args()with settings for the module plot. The argument is merged with options variableteal.ggplot2_argsand default module setup.For more details see the vignette:
vignette("custom-ggplot2-arguments", package = "teal.widgets") - pre_output
(
shiny.tag) optional, text or UI element to be displayed before the module's output, providing context or a title. with text placed before the output to put the output into context. For example a title.- post_output
(
shiny.tag) optional, text or UI element to be displayed after the module's output, adding context or further instructions. Elements likeshiny::helpText()are useful.
Note
For more examples, please see the vignette "Using response plot" via
vignette("using-response-plot", package = "teal.modules.general").
Examples
# general data example
library(teal.widgets)
data <- teal_data()
data <- within(data, {
require(nestcolor)
mtcars <- mtcars
for (v in c("cyl", "vs", "am", "gear")) {
mtcars[[v]] <- as.factor(mtcars[[v]])
}
})
datanames(data) <- "mtcars"
app <- init(
data = data,
modules = modules(
tm_g_response(
label = "Response Plots",
response = data_extract_spec(
dataname = "mtcars",
select = select_spec(
label = "Select variable:",
choices = variable_choices(data[["mtcars"]], c("cyl", "gear")),
selected = "cyl",
multiple = FALSE,
fixed = FALSE
)
),
x = data_extract_spec(
dataname = "mtcars",
select = select_spec(
label = "Select variable:",
choices = variable_choices(data[["mtcars"]], c("vs", "am")),
selected = "vs",
multiple = FALSE,
fixed = FALSE
)
),
ggplot2_args = ggplot2_args(
labs = list(subtitle = "Plot generated by Response Module")
)
)
)
)
#> [INFO] 2024-03-05 18:46:08.6727 pid:1279 token:[] teal.modules.general Initializing tm_g_response
if (interactive()) {
shinyApp(app$ui, app$server)
}
# CDISC data example
library(teal.widgets)
data <- teal_data()
data <- within(data, {
require(nestcolor)
ADSL <- rADSL
})
datanames(data) <- c("ADSL")
join_keys(data) <- default_cdisc_join_keys[datanames(data)]
app <- init(
data = data,
modules = modules(
tm_g_response(
label = "Response Plots",
response = data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variable:",
choices = variable_choices(data[["ADSL"]], c("BMRKR2", "COUNTRY")),
selected = "BMRKR2",
multiple = FALSE,
fixed = FALSE
)
),
x = data_extract_spec(
dataname = "ADSL",
select = select_spec(
label = "Select variable:",
choices = variable_choices(data[["ADSL"]], c("SEX", "RACE")),
selected = "RACE",
multiple = FALSE,
fixed = FALSE
)
),
ggplot2_args = ggplot2_args(
labs = list(subtitle = "Plot generated by Response Module")
)
)
)
)
#> [INFO] 2024-03-05 18:46:08.7715 pid:1279 token:[] teal.modules.general Initializing tm_g_response
if (interactive()) {
shinyApp(app$ui, app$server)
}