Plot Output — renderPlot
R/render-plot.R
Description
Renders a reactive plot that is suitable for assigning to an output
slot.
Arguments
- expr
An expression that generates a plot.
- width, height
Height and width can be specified in three ways:
"auto"
, the default, uses the size specified byplotOutput()
(i.e. theoffsetWidth
/`offsetHeight`` of the HTML element bound to this plot.)An integer, defining the width/height in pixels.
A function that returns the width/height in pixels (or
"auto"
). The function is executed in a reactive context so that you can refer to reactive values and expression to make the width/height reactive.
When rendering an inline plot, you must provide numeric values (in pixels) to both
width
andheight
.- res
Resolution of resulting plot, in pixels per inch. This value is passed to
grDevices::png()
. Note that this affects the resolution of PNG rendering in R; it won't change the actual ppi of the browser.- ...
Arguments to be passed through to
grDevices::png()
. These can be used to set the width, height, background color, etc.- alt
Alternate text for the HTML
<img>
tag if it cannot be displayed or viewed (i.e., the user uses a screen reader). In addition to a character string, the value may be a reactive expression (or a function referencing reactive values) that returns a character string. If the value isNA
(the default), thenggplot2::get_alt_text()
is used to extract alt text from ggplot objects; for other plots,NA
results in alt text of "Plot object".NULL
or""
is not recommended because those should be limited to decorative images.- env
The parent environment for the reactive expression. By default, this is the calling environment, the same as when defining an ordinary non-reactive expression. If
expr
is a quosure andquoted
isTRUE
, thenenv
is ignored.- quoted
If it is
TRUE
, then thequote()
ed value ofexpr
will be used whenexpr
is evaluated. Ifexpr
is a quosure and you would like to use its expression as a value forexpr
, then you must setquoted
toTRUE
.- execOnResize
If
FALSE
(the default), then when a plot is resized, Shiny will replay the plot drawing commands withgrDevices::replayPlot()
instead of re-executingexpr
. This can result in faster plot redrawing, but there may be rare cases where it is undesirable. If you encounter problems when resizing a plot, you can have Shiny re-execute the code on resize by setting this toTRUE
.- outputArgs
A list of arguments to be passed through to the implicit call to
plotOutput()
whenrenderPlot
is used in an interactive R Markdown document.
Details
The corresponding HTML output tag should be div
or img
and have
the CSS class name shiny-plot-output
.
Interactive plots
With ggplot2 graphics, the code in renderPlot
should return a ggplot
object; if instead the code prints the ggplot2 object with something like
print(p)
, then the coordinates for interactive graphics will not be
properly scaled to the data space.
See plotOutput()
for more information about interactive plots.
See also
For the corresponding client-side output function, and example
usage, see plotOutput()
. For more details on how the plots are
generated, and how to control the output, see plotPNG()
.
renderCachedPlot()
offers a way to cache generated plots to
expedite the rendering of identical plots.