Learn R Programming

ggannotate

{ggannotate} is a point-and-click tool to help you put your annotations exactly where you want them to go on your {ggplot2} plots.

The last step in data visualisation - adding annotations - is one of the most important, but it can be hard to get annotations in exactly the right place. With {ggannotate}, you interactively annotate ggplots using a Shiny-based RStudio add-in.

Installation

{ggannotate} is not yet on CRAN. It will be submitted to CRAN when it is more stable and feature-complete.

Install from GitHub:

remotes::install_github("mattcowgill/ggannotate")

Usage

Create a ggplot2 object, then call ggannotate():

library(ggplot2)
library(ggannotate)

p <- ggplot(mtcars, 
            aes(x = wt, y = mpg)) + 
  geom_point() 

ggannotate(p)

If you invoke ggannotate() without specifying a plot, it will use the last plot you modified or created, using ggplot2::last_plot():

ggplot(mtcars, 
            aes(x = wt, y = mpg)) + 
  geom_point() 

ggannotate()

You can also use the RStudio add-in to annotate your last_plot() with ggannotate().

Each of these options will launch a Shiny app. Add your annotation(s) and click ‘copy code’ to copy the annotation code to the clipboard. Then paste the copied code in your script and you’re done!

You can adjust the size of the plot in the Shiny app so you can set it to be the same as your intended output.

Lifecycle

{ggannotate} is still in active development, in an experimental phase. Aspects of the functionality are quite likely to change as the package evolves.

Suggestions are welcome (please file a GitHub issue). The UI will change substantially.

Copy Link

Version

Version

0.0.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Matt Cowgill

Last Published

December 19th, 2020

Functions in ggannotate (0.0.1)

safe_unit

Functions to safely work with grid::unit() and grid::arrow() in Shiny If an input is NULL, NULL is returned; otherwise return a call to unit/arrow.
ggannotate

ggannotate
call_to_string

Given a call, create a tidy string
make_layer

Create a ggplot2 annotation given some aesthetics, parameters, and facet variables + values.
%>%

Pipe operator
check_if_date

Check if x and/or y-scales of a built ggplot2 object are date scales
calls_to_string

Take a list of calls, return a string Each element of the list will be converted to a string, and then combined with the other elements