Half-baked solution is to add the title to the image itself using the convert tool part of the ImageMagick suite. At least you can do it programmatically. For example:
convert -gravity North -annotate +0+0 'My Title' -pointsize 20 input.png output.png
This will add the text "My Title" on the upper side of the image (
-gravity North) right in the middle. It can handle several image formats in input and output. ImageMagick is useful suite to have anyway...
To choose a font just add the option
-font, for example
-font TimesNewRoman. To see available fonts you can use
convert -list type.
using this idea as a starting point: https://github.com/hms-dbmi/UpSetR/issues/63#issuecomment-306610220
you could try the following:
library(UpSetR) movies <- read.csv( system.file("extdata", "movies.csv", package = "UpSetR"), header = T, sep = ";" ) upset( movies, nsets = 6, number.angles = 30, point.size = 3.5, line.size = 2, mainbar.y.label = "Genre Intersections", sets.x.label = "Movies Per Genre", text.scale = c(1.3, 1.3, 1, 1, 2, 0.75) ) grid.edit('arrange', name="movies") vp <- grid.grab() grid.arrange( grobs = list( vp ), top="Choosing the Top Largest Sets and Plot Formatting", cols=1 )