Devices: List of Graphical Devices

Description Details See Also Examples


The following graphics devices are currently available:

  • pdf Write PDF graphics commands to a file

  • postscript Writes PostScript graphics commands to a file

  • xfig Device for XFIG graphics file format

  • bitmap bitmap pseudo-device via Ghostscript (if available).

  • pictex Writes TeX/PicTeX graphics commands to a file (of historical interest only)

The following devices will be functional if R was compiled to use them (they exist but will return with a warning on other systems):

  • X11 The graphics device for the X11 windowing system

  • cairo_pdf, cairo_ps PDF and PostScript devices based on cairo graphics.

  • svg SVG device based on cairo graphics.

  • png PNG bitmap device

  • jpeg JPEG bitmap device

  • bmp BMP bitmap device

  • tiff TIFF bitmap device

  • quartz The graphics device for the macOS native Quartz 2d graphics system. (This is only functional on macOS where it can be used from the GUI and from the command line: but it will display on the local screen even for a remote session.)


If no device is open, using a high-level graphics function will cause a device to be opened. Which device is given by options("device") which is initially set as the most appropriate for each platform: a screen device for most interactive use and pdf (or the setting of R_DEFAULT_DEVICE) otherwise. The exception is interactive use under Unix if no screen device is known to be available, when pdf() is used.

It is possible for an R package to provide further graphics devices and several packages on CRAN do so. These include other devices outputting SVG and PGF/TiKZ (TeX-based graphics, see

See Also

The individual help files for further information on any of the devices listed here; X11.options, quartz.options, ps.options and pdf.options for how to customize devices.

dev.interactive, dev.cur, dev.print,, image, dev2bitmap.

capabilities to see if X11, jpeg png, tiff, quartz and the cairo-based devices are available.


## Not run: 
## open the default screen device on this platform if no device is
## open
if(dev.cur() == 1)

## End(Not run)

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.