Embed external images in knitr documents

When plots are not generated from R code, there is no way for knitr to capture plots automatically. In this case, you may generate the images manually and pass their file paths to this function to include them in the output. The major advantage of using this function is that it is portable in the sense that it works for all document formats that knitr supports, so you do not need to think if you have to use, for example, LaTeX or Markdown syntax, to embed an external image. Chunk options related to graphics output that work for normal R plots also work for these images, such as out.width and out.height.

include_graphics(path, auto_pdf = TRUE, dpi = NULL)

a character vector of image paths


whether to use PDF images automatically when the output format is LaTeX, e.g. foo/bar.png will be replaced by foo/bar.pdf if the latter exists; this can be useful since normally PDF images are of higher qualities than raster images like PNG when the output is LaTeX/PDF


the DPI (dots per inch) value to be used to calculate the output width (in inches) of the images from the actual width (in pixels) divided by dpi; if not provided, the chunk option dpi is used; if NA, the output width will not be calculated


The same as the input character vector path but it is marked with special internal S3 classes so that knitr will convert the file paths to proper output code according to the output format.


This function is supposed to be used in R code chunks or inline R code expressions. You are recommended to use forward slashes (/) as path separators instead of backslashes in the image paths.

The automatic calculation of the output width requires the png package (for PNG images) or the jpeg package (for JPEG images). The width will not be calculated if the chunk option out.width is already provided or dpi = NA.

  • include_graphics
Documentation reproduced from package knitr, version 1.17, License: GPL

Community examples

Looks like there are no examples yet.