Function to create a plot specification that can be added as content to a report. The create_plot function can be used to include charts, graphs, and figures on a statistical report. The function supports plot objects returned by ggplot or ggsurvplot. It does not support the Base R plot function.

create_plot(x, height, width, borders = "none")



The plot to create. Specifically, this parameter should be set to an object returned from a call to ggplot or ggsurvplot. This parameter also accepts a path to a JPEG file. If a path is specified, the image will be appended to the report at the point the content object is added.


The height of the plot in the specified units of measure.


The width of the plot in the specified units of measure.


Whether and where to place a border. Valid values are 'top', 'bottom', 'left', 'right', 'all', 'none', and 'outside'. Default is 'none'. The 'left', 'right', and 'outside' border specifications only apply to RTF reports.


The plot specification.


To add a plot to a report, use the create_plot function. The function allows you to set a width and height for the plot. The function will preserve any other geometries you apply to the plot. See the add_content function to control page breaking and blanks spaces above or below the plot.

A plot specification accepts a page_by function. If a page by is applied to the plot, the plot data will be subset by the page by variable, and re-run for each subset.

The plot specification also accepts titles and footnotes. See the titles and footnotes functions for further details.

As of reporter version 1.2.9, the create_plot function also accepts a path to a JPEG stored on the file system instead of a plot object. This functionality was added to allow the user to create figures from other plotting packages. If you pass an image path, the image will be inserted into the report at the location specified.

See also

titles to add a title block to the plot, footnotes to add footnotes, and add_content to add the plot object to a report.

Other plot: print.plot_spec()



# Create temp file path
tmp <- file.path(tempdir(), "mtcars.rtf")

# Create ggplot
p <- ggplot(mtcars, aes(x=cyl, y=mpg)) + geom_point()

# Create plot object
plt <- create_plot(p, height = 4, width = 8)

rpt <- create_report(tmp, output_type = "RTF") %>%
  page_header("Client", "Study: XYZ") %>% 
  titles("Figure 1.0", "MTCARS Miles per Cylinder Plot") %>%
  set_margins(top = 1, bottom = 1) %>%
  add_content(plt) %>%
  footnotes("* Motor Trend, 1974") %>% 
  page_footer("Time", "Confidential", "Page [pg] of [tpg]")

# Write out report

# Uncomment to view RTF file
# shell.exec(tmp)