Paul Murrell on Incorporating Images in R Charts

Thanks to everyone at who attended last night's Bay Area R User Group meeting, and a special thanks to our hosts Socialize (a company that makes a mobile SDK for application developers that increases user engagement) who were very generous in letting the group use their San Francisco digs for the meeting. Reflexive thanks also go to the Revolution Analytics community team for sponsoring BARUG and providing refreshments.

At last night's meeting, R core member Paul Murrell gave a wonderful talk about the new raster image support available in recent versions of R (since version 2.11.0). Raster graphics support makes it easy in R to incorporate images into charts created like R. So if you want to incorporate a photo background into an infographic, or connect a series of PNG icons into a network diagram, or use an image as a scatterplot mark, all of that is now possible in R. You lay out images any way you like, in fact, as Paul showed:

(Paul's slides aren't on-line yet, hence the phone camera shot above. I'll link to his slides here when they're available.) As an added bonus, raster images are much more efficient than the "old" way of doing things in R (by drawing lots of little squares, one by one). As a result, plots that contain raster images — like image plots and heatmaps — render much faster in R, and create smaller and higher-quality exported image files. (If you're a regular user of the image function in R, for example, you should make a habit of using the new useRaster=TRUE option.)

The 'a-ha' moment for me in the talk, though, was that these facilities now make R a scriptable alternative to image editors like ImageMagick or GIMP. Paul showed a great example of producing an infographic by defining an area to cut-and-paste out using a polygonal mask, and then colour-correcting the image within that shape (to create a transparent overlay). Sure, all of these things are easy to do in image-processing tools, but by doing it in an R script it makes the process automated and repeatable — perfect if you want to recreate an infographic on a daily basis with updated data, for example.

You can see some code examples working with images in R from Chapter 18 of the forthcoming second edition of Paul's book, R Graphics.