Changing the fonts in R plots

I use R to do almost all of my statistical analysis and plotting. It has a very steep learning curve but once you get into it, it’s very powerful and you can customise almost anything. The only problem is that these changes are not always obvious or easy to do. Case in point: how to change the fonts on an R plot.

Here are some R commands to plot a few made-up data points:

x < - 1:10
y <- x + rnorm(10)
plot(x,y,main="Basic R plot")

And here's the resulting plot:

Basic R plot

But say you don't want to use Arial as the font for the plot? What if you're doing a Wild West plot (I don't know why but just suppose...) and want to use something like Playbill? This can be done in the following steps.

  1. Find the font settings file Rdevga. There are two versions. The first is system-wide and can be found in $R_HOME$/etc/Rdevga (e.g. C:/Program Files/R/R-2.6.0/etc/Rdevga). The second applies only to your user account and can be found in $R_USER (find this in R using Sys.getenv("R_USER")). If Rdevga doesn't exist in your user directory, just copy the system-wide version there.
  2. Modify the user or system-wide Rdevga to add your desired font. The comments in the file explain how to do this; for example, to add Playbill, add a line that reads "TT Playbill : plain". A full list of available fonts on your system can be found (on a Windows machine) by going to Control Panel > Fonts.
  3. Count the number of uncommented non-blank lines in the file and note the number of your newly added line. After a default R installation, a line added to the bottom would be 20.
  4. (Re)start R so that it reads in the new settings. Redo your plot using the font options to select your desired font, e.g. plot(x,y,main="Basic R plot", font.main=20, cex.main=3)
  5. Et voilĂ ! New plot:
    Basic R plot with different font

Some final notes. First, you might have to change the scale of the font for it to look right (e.g. the cex.main command). Second, you can change the font for specific parts of the plot but it’s tricky to change them all at once; see the help files for more information (type ?par in the Rconsole). Third, you can have a maximum of 32 fonts defined in your Rdevga file (i.e. the standard 19 plus 13 of your choosing, unless you replace the standard ones). Finally, this change only works for functions which call the windows method; so exporting to jpg, bmp, png etc should be fine but pdf and postscript will revert to the default fonts. You can change the fonts for these plots but that’s for another time.

Hope this helps!

5 thoughts on “Changing the fonts in R plots

  1. Pingback: Links: Use other Font-Families in R « Sina & R

  2. tonto

    I must admit that I lol’d at this choice of font. I was looking for pdf fonts also, but this is a good example still! thanks for the info :)

  3. spyrokete

    i’ve found the files to edit and have edited them but i can’t save them for some reason…do edit them in R? or in notepad?

  4. James Keirstead Post author

    You should be able to edit them in Notepad or any other text editor. If you’re still having problems, it may be that you are trying to edit the system-wide .RProfile file and don’t have sufficient permissions. Try editing the .RProfile in your user directory instead as described here.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>