Setting resolution and aspect ratios in R


Inspiration for this post

I recently needed to make some figures to present and noticed that the ones I was importing from saved R plots were showing up fuzzy on the presentation. Shortly afterwards, I had interns trying to generate figures with the same aspect ratio from different computers. I did a little digging and found this method for saving figures with specified resolutions and aspect ratios.


In order to save your figure with a certain size and resolution, you just need to include your code for plotting between the two lines below:

# To save a .png file:
png("your_image.png", units = "in", width = 5, height = 4, res = 300)
# your plotting code here

You can also save .bmp, .jpeg, and .tiff files in the same way with the bmp, jpeg and tiff functions.


To see this in practice, we can plot some data from the iris dataset the “regular” way:

pairs(iris[,1:4], col = iris$Species)

Things look pretty nice in the plotting window, but when you save that figure from RStudio, this is the result:

To get rid of that graininess, we can instead save the figure in the following way:

png("highres.png", units = "in", width = 5, height = 4, res = 300)
pairs(iris[,1:4], col = iris$Species)

The resulting figure is much clearer and ready to be inserted in presentations or publications!

You can also change the aspect ratio by modifying the height and width arguments. You can leave the units in inches or set it to pixels ("px"), centimeters ("cm"), or millimeters ("mm").

Cecina Babich Morrow
Compass PhD Program

My research interests range from harnessing data to improve mental healthcare to understanding global patterns of macroecology.

comments powered by Disqus