README.md

lifecycle

gglmannotate annotates a ggplot2 with a description of a linear model.

Installation

Install the development version from GitHub:

devtools::install_github("wilkox/gglmannotate")

How to use

To add a description of a linear model to a scatter plot built with ggplot2, just add geom_lmannotate().

library(ggplot2)
library(gglmannotate)

ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point() +
  geom_smooth(method = "lm") +
  geom_lmannotate()

Grouping, for example by adding a colour aesthetic, is automatically handled.

ggplot(mpg, aes(x = displ, y = hwy, colour = class)) +
  geom_point() +
  geom_smooth(method = "lm") +
  geom_lmannotate()

Faceting is also supported.

ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point() +
  geom_smooth(method = "lm") +
  geom_lmannotate() +
  facet_wrap(~ class)

Customising the annotation text

The annotation can be changed from the default by setting the glue_exp argument to geom_lmannotate(), which will be parsed with the glue() function from the glue package. This allows interpolation of R variables and expressions. The linear model object (the output of lm()) is available inside the glue expression as the variable model. For example:

ggplot(mpg, aes(x = displ, y = hwy, colour = class)) +
  geom_point() +
  geom_smooth(method = "lm") +
  geom_lmannotate(glue_exp = "Max residual: {signif(max(model$residuals), 2)}")

Customising the annotation placement

To change the region of the plot area in which annotations will be drawn, use the region argument to geom_lmannotate(). It takes a named numeric vector with elements ‘xmin’, ‘xmax’, ‘ymin’ and ‘ymax’, all scaled between 0 and 1, to define the region.

The vertical and horizontal aliment of the text within the region can be set with place. It accepts the following values: “right”, “bottomright”, “bottom”, “bottomleft”, “left”, “topleft”, “top”, and “centre|center|middle”.

ggplot(mpg, aes(x = hwy, y = cty, colour = class)) +
  geom_point() +
  geom_smooth(method = "lm") +
  geom_lmannotate(
    region = c(xmin = 0, xmax = 0.75, ymin = 0.75, ymax = 1),
    place = "topleft"
  )

The annotation text layout can be further tweaked with the min.size, grow and reflow options. See the ggfittext package for full details on these options.



wilkox/gglmannotate documentation built on May 7, 2019, 7:17 p.m.