Nothing
#' APA-style `ggplot2` Theme
#'
#' \pkg{ggplot2} theme with a white panel background, no grid lines, large axis
#' and legend titles, and increased text padding for better readability.
#'
#' @param base_size Numeric. Base font size; other font sizes and margins are
#' adjusted relative to this.
#' @param base_family Character. Base font family.
#' @param box Logical. Indicates whether to draw a black panel border.
#'
#' @return Object of class `theme` and `gg`, see [ggplot2::theme()].
#' @seealso [ggplot2::theme_bw()], [ggplot2::theme()]
#' @export
#'
#' @examples
#' \donttest{
#' # Copied from ?ggtheme
#' mtcars2 <- within(mtcars, {
#' vs <- factor(vs, labels = c("V-shaped", "Straight"))
#' am <- factor(am, labels = c("Automatic", "Manual"))
#' cyl <- factor(cyl)
#' gear <- factor(gear)
#' })
#'
#' library("ggplot2")
#' p1 <- ggplot(mtcars2) +
#' geom_point(aes(x = wt, y = mpg, colour = gear)) +
#' labs(
#' title = "Fuel economy declines as weight increases",
#' subtitle = "(1973-1974)",
#' x = "Weight (1000 lbs)",
#' y = "Fuel economy (mpg)",
#' colour = "Gears"
#' )
#'
#' p1
#' p1 + theme_apa()
#' }
theme_apa <- function(base_size = 12, base_family = "", box = FALSE) {
adapted_theme <- ggplot2::theme_bw(base_size, base_family) +
ggplot2::theme(
plot.title = ggplot2::element_text(size = ggplot2::rel(1.1), margin = ggplot2::margin(0, 0, ggplot2::rel(14), 0), hjust = 0.5)
, plot.subtitle = ggplot2::element_text(size = ggplot2::rel(0.8), margin = ggplot2::margin(ggplot2::rel(-7), 0, ggplot2::rel(14), 0), hjust = 0.5)
# , axis.title = ggplot2::element_text(size = ggplot2::rel(1.1))
, axis.title.x = ggplot2::element_text(size = ggplot2::rel(1), lineheight = ggplot2::rel(1.1), margin = ggplot2::margin(ggplot2::rel(12), 0, 0, 0))
, axis.title.x.top = ggplot2::element_text(size = ggplot2::rel(1), lineheight = ggplot2::rel(1.1), margin = ggplot2::margin(0, 0, ggplot2::rel(12), 0))
, axis.title.y = ggplot2::element_text(size = ggplot2::rel(1), lineheight = ggplot2::rel(1.1), margin = ggplot2::margin(0, ggplot2::rel(12), 0, 0))
, axis.title.y.right = ggplot2::element_text(size = ggplot2::rel(1), lineheight = ggplot2::rel(1.1), margin = ggplot2::margin(0, 0, 0, ggplot2::rel(12)))
, axis.ticks.length = ggplot2::unit(ggplot2::rel(6), "points")
, axis.text = ggplot2::element_text(size = ggplot2::rel(0.9))
, axis.text.x = ggplot2::element_text(size = ggplot2::rel(1), margin = ggplot2::margin(ggplot2::rel(6), 0, 0, 0))
, axis.text.y = ggplot2::element_text(size = ggplot2::rel(1), margin = ggplot2::margin(0, ggplot2::rel(6), 0, 0))
, axis.text.y.right = ggplot2::element_text(size = ggplot2::rel(1), margin = ggplot2::margin(0, 0, 0, ggplot2::rel(6)))
, axis.line = ggplot2::element_line()
# , axis.line.x = ggplot2::element_line()
# , axis.line.y = ggplot2::element_line()
, legend.title = ggplot2::element_text()
, legend.key = ggplot2::element_rect(fill = NA, color = NA)
, legend.key.width = ggplot2::unit(ggplot2::rel(20), "points")
, legend.key.height = ggplot2::unit(ggplot2::rel(20), "points")
, legend.margin = ggplot2::margin(
t = ggplot2::rel(16)
, r = ggplot2::rel(16)
, b = ggplot2::rel(16)
, l = ggplot2::rel(16)
, unit = "points"
)
, panel.spacing = ggplot2::unit(ggplot2::rel(14), "points")
, panel.grid.major.x = ggplot2::element_blank()
, panel.grid.minor.x = ggplot2::element_blank()
, panel.grid.major.y = ggplot2::element_blank()
, panel.grid.minor.y = ggplot2::element_blank()
, strip.background = ggplot2::element_rect(fill = NA, color = NA)
, strip.text.x = ggplot2::element_text(size = ggplot2::rel(1.2), margin = ggplot2::margin(0, 0, ggplot2::rel(10), 0))
, strip.text.y = ggplot2::element_text(size = ggplot2::rel(1.2), margin = ggplot2::margin(0, 0, 0, ggplot2::rel(10)))
)
if(box) {
adapted_theme <- adapted_theme + ggplot2::theme(panel.border = ggplot2::element_rect(color = "black"))
} else {
adapted_theme <- adapted_theme + ggplot2::theme(panel.border = ggplot2::element_blank())
}
adapted_theme
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.