https://github.com/cran/cutpointr
Tip revision: bbfd8290a255cf1d55a1eed28f5501736e754842 authored by Christian Thiele on 14 April 2020, 07:50:10 UTC
version 1.0.2
version 1.0.2
Tip revision: bbfd829
plot.cutpointr.R
#' Plot cutpointr objects
#'
#' The plot layout depends on whether subgroups were defined and whether
#' bootstrapping was run.
#'
#' The \code{...} argument can be used to apply \pkg{ggplot2} functions to every individual
#' plot, for example for changing the theme.
#'
#' @param x A cutpointr object.
#' @param ... Further arguments.
#' @examples
#' opt_cut <- cutpointr(suicide, dsi, suicide, gender)
#' plot(opt_cut)
#' plot(opt_cut, ggplot2::theme_bw())
#' @family cutpointr plotting functions
#' @export
plot.cutpointr <- function(x, ...) {
if ("multi_cutpointr" %in% class(x)) {
stop("Plotting multi_cutpointr objects is not supported.")
}
args <- list(...)
dist <- plot_x(x)
roc <- plot_roc(x)
boot_flag <- has_boot_results(x)
if (boot_flag) {
boot_cut <- plot_cut_boot(x)
boot_metric <- plot_metric_boot(x)
} else {
boot_cut <- NULL
boot_metric <- NULL
}
#
# Compose plots
#
plots <- list(dist, roc, boot_cut, boot_metric)
keep <- !(purrr::map_lgl(plots, is.null))
plots <- plots[keep]
plots <- lapply(plots, function(p) p + args)
rows <- round(sum(keep) / 2)
pos <- ifelse(rows > 1, "right", "bottom")
# suppressMessages(p <- grid_arrange_shared_legend(plots,
# nrow = rows, ncol = 2,
# position = pos))
# invisible(p)
grid_arrange_shared_legend(plots,
nrow = rows,
ncol = 2,
position = pos)
}