
Developer function for plotting results from Evaluator.
Source:R/visualizer-lib-utils.R
plot_eval_constructor.RdA helper function for developing new Visualizer plotting
functions that plot the summarized evaluation results as a boxplot,
scatter plot, line plot, or bar plot with or without 1 SD error
bars/ribbons. This function accepts either (1) the name(s) of the
Evaluator(s) to plot (eval_names) or (2) a tibble containing
the summarized evaluation results to plot (plot_data).
Usage
plot_eval_constructor(
eval_results = NULL,
eval_names = NULL,
plot_data = NULL,
eval_id = NULL,
vary_params = NULL,
show = c("boxplot", "point", "line", "bar", "errorbar", "ribbon", "violin"),
x_str = "auto",
y_str = "auto",
y_boxplot_str = "auto",
err_sd_str = "auto",
color_str = "auto",
linetype_str = "auto",
facet_formula = NULL,
facet_type = c("grid", "wrap"),
plot_by = "auto",
add_ggplot_layers = NULL,
boxplot_args = NULL,
point_args = NULL,
line_args = NULL,
bar_args = NULL,
errorbar_args = NULL,
ribbon_args = NULL,
violin_args = NULL,
facet_args = NULL,
interactive = FALSE,
...
)Arguments
- eval_results
A list of result tibbles, as returned by
evaluate_experiment().- eval_names
(Optional) A character vector or string, specifying the name(s) of
Evaluator(s)to plot. If multipleEvaluatorsare specified, these resulttibblesare concatenated along the rows. Must provide eithereval_namesorplot_data.- plot_data
(Optional)
Tibble(typically from the output ofeval_summary_constructor) containing the summarized evaluation results to plot. Must provide eithereval_namesorplot_data. Ifeval_namesis provided, this argument is ignored.- eval_id
(Optional) Character string. ID used as the suffix for naming columns in evaluation results tibble. If
eval_summary_constructor()was used to construct theEvaluator, this should be the same as theeval_idargument ineval_summary_constructor(). Only used to assign default (i.e., "auto") aesthetics in ggplot.- vary_params
A vector of
DGPorMethodparameter names that are varied across in theExperiment.- show
Character vector with elements being one of "boxplot", "point", "line", "bar", "errorbar", "ribbon", "violin", indicating what plot layer(s) to construct.
- x_str
(Optional) Name of column in data frame to plot on the x-axis. Default "auto" chooses what to plot on the x-axis automatically.
- y_str
(Optional) Name of column in data frame to plot on the y-axis if
showis anything but "boxplot". Default "auto" chooses what to plot on the y-axis automatically.- y_boxplot_str
(Optional) Name of column in data frame to plot on the y-axis if
showis "boxplot". Default "auto" chooses what to plot on the y-axis automatically.- err_sd_str
(Optional) Name of column in data frame containing the standard deviations of
y_str. Used for plotting the errorbar and ribbon ggplot layers. Default "auto" chooses what column to use for the standard deviations automatically.- color_str
(Optional) Name of column in data frame to use for the color and fill aesthetics when plotting. Default "auto" chooses what to use for the color and fill aesthetics automatically. Use
NULLto avoid adding any color and fill aesthetic.- linetype_str
(Optional) Name of column in data frame to use for the linetype aesthetic when plotting. Used only when
show = "line". Default "auto" chooses what to use for the linetype aesthetic automatically. UseNULLto avoid adding any linetype aesthetic.- facet_formula
(Optional) Formula for
ggplot2::facet_wrap()orggplot2::facet_grid()if need be.- facet_type
One of "grid" or "wrap" specifying whether to use
ggplot2::facet_wrap()orggplot2::facet_grid()if need be.- plot_by
(Optional) Name of column in
eval_tibto use for subsetting data and creating different plots for each unique value. Default "auto" chooses what column to use for the subsetting automatically. UseNULLto avoid creating multiple plots.- add_ggplot_layers
List of additional layers to add to a ggplot object via
+.- boxplot_args
(Optional) Additional arguments to pass into
ggplot2::geom_boxplot().- point_args
(Optional) Additional arguments to pass into
ggplot2::geom_point().- line_args
(Optional) Additional arguments to pass into
ggplot2::geom_line().- bar_args
(Optional) Additional arguments to pass into
ggplot2::geom_bar().- errorbar_args
(Optional) Additional arguments to pass into
ggplot2::geom_errorbar().- ribbon_args
(Optional) Additional arguments to pass into
ggplot2::geom_ribbon().- violin_args
(Optional) Additional arguments to pass into
ggplot2::geom_violin().- facet_args
(Optional) Additional arguments to pass into
ggplot2::facet_grid()orggplot2::facet_wrap().- interactive
Logical. If
TRUE, returns interactiveplotlyplots. IfFALSE, returns staticggplotplots.- ...
Not used.
Value
If interactive = TRUE, returns a plotly object if
plot_by is NULL and a list of plotly objects if
plot_by is not NULL. If interactive = FALSE, returns
a ggplot object if plot_by is NULL and a list of
ggplot objects if plot_by is not NULL.
Examples
# generate example fit results data
fit_results <- tibble::tibble(
.rep = rep(1:2, times = 2),
.dgp_name = c("DGP1", "DGP1", "DGP2", "DGP2"),
.method_name = c("Method"),
# true response
y = lapply(1:4, FUN = function(x) rnorm(100)),
# predicted response
predictions = lapply(1:4, FUN = function(x) rnorm(100))
)
# generate example evaluation results data
eval_results <- list(
`Prediction Errors` = summarize_pred_err(
fit_results = fit_results,
truth_col = "y",
estimate_col = "predictions",
eval_id = "pred_err"
)
)
# create plot using name of Evaluator
plt <- plot_eval_constructor(eval_results = eval_results,
eval_name = "Prediction Errors",
eval_id = "pred_err",
show = c("point", "errorbar"),
facet_formula = ~ .metric)
# create plot using pre-computed evaluation results
plt <- plot_eval_constructor(plot_data = eval_results[["Prediction Errors"]],
eval_id = "pred_err",
show = c("point", "errorbar"),
facet_formula = ~ .metric)
# can customize plots using additional arguments or ggplot2::`+`
plt <- plot_eval_constructor(eval_results = eval_results,
eval_name = "Prediction Errors",
eval_id = "pred_err",
show = c("point", "errorbar"),
facet_formula = ~ .metric,
facet_type = "wrap",
errorbar_args = list(width = 0.5),
facet_args = list(scales = "free")) +
ggplot2::labs(y = "Mean Prediction Error")
# can return interactive plotly plot
plt <- plot_eval_constructor(eval_results = eval_results,
eval_name = "Prediction Errors",
eval_id = "pred_err",
show = c("point", "errorbar"),
facet_formula = ~ .metric,
interactive = TRUE)