The plotannotate package allows annotating plots created
with ‘base R graphics’. The function for this purpose is called
annotate. After creating a plot, for example with
plot(), the command annotate() enters a
freehand drawing mode where one can draw on the plot with the mouse (or
some other input device). Various symbols (points, lines, arrows,
rectangles, circles, ellipses) and text can also be added. Pressing
q or the right mouse button terminates the annotation
mode.
The functionality provided by the package is especially useful when teaching (e.g., to visually explain certain plot elements), but can also be used for creating quick sketches.
Note that the annotate() function makes extensive use of
getGraphicsEvent to capture mouse movements and keyboard
inputs. Only some graphics devices support this (currently only
windows and x11). If you receive the error
message ‘The graphics device does not support event handling’, then the
graphics device that was opened does not provide this kind of
functionality. For example, this will be the case for the
RStudioGD graphics device that is used by RStudio or the
quartz graphics device that is used by default by macOS.
You can then try running x11() before creating the
plot.
Also, annotate() does not work for plots based on the
grid graphics engine (which includes plots created with the
ggplot2 or lattice packages), since such plots
are not compatible with getGraphicsEvent.
The plotannotate package is licensed under the GNU General Public
License Version 3. To report any issues or bugs, please go here.