Run a plotting function and save the output as a PNG — plotPNG

plotPNG(
  func,
  filename = tempfile(fileext = ".png"),
  width = 400,
  height = 400,
  res = 72,
  ...
)

Arguments

func

A function that generates a plot.

filename

The name of the output file. Defaults to a temp file with extension .png.

width

Width in pixels.

height

Height in pixels.

res

Resolution 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.

Description

This function returns the name of the PNG file that it generates. In essence, it calls png(), then func(), then dev.off(). So func must be a function that will generate a plot when used this way.

Details

For output, it will try to use the following devices, in this order: quartz (via grDevices::png()), then Cairo::CairoPNG(), and finally grDevices::png(). This is in order of quality of output. Notably, plain png output on Linux and Windows may not antialias some point shapes, resulting in poor quality output.

In some cases, Cairo() provides output that looks worse than png(). To disable Cairo output for an app, use options(shiny.usecairo=FALSE).