Advanced graphics options
Although renderPlot()
makes it very easy to produce reactive outputs, as we've seen, it only works with the standard method of outputting graphics in R. Images from certain packages within R as well as images created outside of R will not be displayed.
Helpfully, Shiny includes a function to render all image files within a Shiny application: renderImage()
. The simplest case is where you have a prerendered image that you wish to include. In the server.R
file, the renderImage()
call is made, returning a list with the path to the image and optionally the content type (to save Shiny from having to guess based on the file extension):
output$imageFile <- renderImage({ list(src = "foo.png", contentType = "image/png") }, deleteFile = FALSE)
The deleteFile
argument is set to false
; otherwise, the file will be removed after display. This is intended for when the image is generated within the call. The file is no longer needed, so it can be deleted after the image is displayed...