Create a function ggplot with a wrapper around ggplot2::ggplot() + geom_function().
gg_function(
data = NULL,
...,
stat = "function",
position = "identity",
coord = ggplot2::coord_cartesian(clip = "off"),
mode = NULL,
x = NULL,
xmin = NULL,
xmax = NULL,
xend = NULL,
y = NULL,
ymin = NULL,
ymax = NULL,
yend = NULL,
z = NULL,
col = NULL,
facet = NULL,
facet2 = NULL,
group = NULL,
subgroup = NULL,
label = NULL,
text = NULL,
sample = NULL,
mapping = NULL,
x_breaks = NULL,
x_expand = NULL,
x_expand_limits = NULL,
x_labels = NULL,
x_limits = NULL,
x_oob = scales::oob_keep,
x_position = "bottom",
x_title = NULL,
x_transform = NULL,
y_breaks = NULL,
y_expand = NULL,
y_expand_limits = NULL,
y_labels = NULL,
y_limits = NULL,
y_oob = scales::oob_keep,
y_position = "left",
y_title = NULL,
y_transform = NULL,
col_breaks = NULL,
col_expand_limits = NULL,
col_labels = NULL,
col_legend_ncol = NULL,
col_legend_nrow = NULL,
col_legend_rev = FALSE,
col_limits = NULL,
col_oob = scales::oob_keep,
col_pal = NULL,
col_pal_na = "darkgrey",
col_rescale = scales::rescale(),
col_steps = FALSE,
col_title = NULL,
col_transform = NULL,
facet_axes = NULL,
facet_axis_labels = "margins",
facet_labels = NULL,
facet_labels_position = "top",
facet_labels_switch = NULL,
facet_layout = NULL,
facet_ncol = NULL,
facet_nrow = NULL,
facet_scales = "fixed",
facet_space = "fixed",
title = NULL,
subtitle = NULL,
caption = NULL,
titles_to_case = snakecase::to_sentence_case
)A ggplot object.
A data frame or tibble.
Other arguments passed to within a params list in layer().
A statistical transformation to use on the data. A snakecase character string of a ggproto Stat subclass object minus the Stat prefix (e.g. "identity").
A position adjustment. A snakecase character string of a ggproto Position subclass object minus the Position prefix (e.g. "identity"), or a position_*() function that outputs a ggproto Position subclass object (e.g. ggplot2::position_identity()).
A coordinate system. A coord_*() function that outputs a constructed ggproto Coord subclass object (e.g. ggplot2::coord_cartesian()).
A *_mode_* theme (e.g. light_mode_t(), grey_mode_r(), or dark_mode_r()). This argument adds the theme with side-effects, as the gg_* function will removes selected gridlines/axis-line/ticks. To avoid these side-effects, + the theme on to the output of gg_*.
An unquoted aesthetic variable.
A set of additional aesthetic mappings in ggplot2::aes(). Intended primarily for non-supported aesthetics (e.g. shape, linetype, linewidth, or size), but can also be used for delayed evaluation etc.
A scales::breaks_* function (e.g. scales::breaks_pretty()), or a vector of breaks.
Padding to the limits with the ggplot2::expansion() function, or a vector of length 2 (e.g. c(0, 0)).
For a continuous variable, any values that the limits should encompass (e.g. 0). For a discrete scale, manipulate the data instead with forcats::fct_expand.
A function that takes the breaks as inputs (e.g. \(x) stringr::str_to_sentence(x) or scales::label_comma()), or a vector of labels (Note this must be named for facet_labels).
For a continuous scale, a vector of length 2 to determine the limits of the scale. For a discrete scale, manipulate the data instead with factor, forcats::fct_expand or forcats::fct_drop.
For a continuous scale, a scales::oob_* function of how to handle values outside of limits. Defaults to scales::oob_keep.
The position of the axis (i.e. "left", "right", "bottom" or "top").If using y_position = "top" with a *_mode_* theme, add caption = "" or caption = "\n".
Axis title string. Use + ggplot2::labs(... = NULL) for no title.
For a continuous scale, a transformation object (e.g. scales::transform_log10()) or character string of this minus the transform_ prefix (e.g. "log10").
The number of columns and rows in a legend guide.
TRUE or FALSE of whether to reverse the elements of a legend guide. Defaults to FALSE.
Colours to use. A character vector of hex codes (or names).
Colour to use for NA values. A character vector of a hex code (or name).
For a continuous variable, a scales::rescale() function.
For a continuous variable, TRUE or FALSE of whether to colour in steps. Defaults to FALSE.
Whether to add interior axes and ticks with "margins", "all", "all_x", or "all_y".
Whether to add interior axis labels with "margins", "all", "all_x", or "all_y".
When the facet layout is "wrap", the position of the facet labels. Either "top", "right", "bottom" or "left".
When the facet layout is "grid", whether to switch the facet labels to the opposite side of the plot. Either "x", "y" or "both".
Whether the layout is to be "wrap" or "grid". If NULL and a single facet (or facet2) argument is provided, then defaults to "wrap". If NULL and both facet and facet2 arguments are provided, defaults to "grid".
The number of columns and rows of facet panels. Only applies to a facet layout of "wrap".
Whether facet scales should be "fixed" across facets, "free" in both directions, or free in just one direction (i.e. "free_x" or "free_y"). Defaults to "fixed".
When the facet layout is "grid" and facet scales are not "fixed", whether facet space should be "fixed" across facets, "free" to be proportional in both directions, or free to be proportional in just one direction (i.e. "free_x" or "free_y"). Defaults to "fixed".
Title string.
Subtitle string.
Caption title string.
A function to format unspecified titles_to_case. Defaults to snakecase::to_sentence_case.
library(ggplot2)
library(dplyr)
set_blanket()
gg_function(
fun = \(x) dnorm(x, mean = 0, sd = 5),
x_limits = qnorm(p = c(0.005, 0.995), mean = 0, sd = 5),
y_expand_limits = 0,
)
Run the code above in your browser using DataLab