recordGraphics {grDevices} | R Documentation

## Record Graphics Operations

### Description

Records arbitrary code on the graphics engine display list. Useful for encapsulating calculations with graphical output that depends on the calculations. Intended only for expert use.

### Usage

    recordGraphics(expr, list, env)

### Arguments

`expr` | object of mode `expression` or `call` or an unevaluated expression.
`list` | a list defining the environment in which `expr` is to be evaluated.
`env` | an `environment` specifying where R looks for objects not found in `list`.

### Details

The code in `expr` is evaluated in an environment constructed from `list`, with `env` as the parent of that environment.

All three arguments are saved on the graphics engine display list so that on a device resize or copying between devices, the original evaluation environment can be recreated and the code can be re-evaluated to reproduce the graphical output.

### Value

The value from evaluating `expr`.

### Warning

This function is not intended for general use. Incorrect or improper use of this function could lead to unintended and/or undesirable results.

An example of acceptable use is querying the current state of a graphics device or graphics system setting and then calling a graphics function.

An example of improper use would be calling the `assign` function to performing assignments in the global environment.

### See Also

`eval`

### Examples

    require(graphics)

    plot(1:10)
    # This rectangle remains 1inch wide when the device is resized
    recordGraphics(
      {
        rect(4, 2,
             4 + diff(par("usr")[1:2])/par("pin")[1], 3)
      },
      list(),
      getNamespace("graphics"))

[Package grDevices version 3.6.0 Index]