Site icon R-bloggers

Changing the fonts in R plots

[This article was first published on James Keirstead » R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

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 s 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:

But say you don't want to use Arial as the 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 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 . 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 s 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 options to select your desired , e.g. plot(x,y,main="Basic R plot", .main=20, cex.main=3)
  5. Et voilà! New plot:

Some final notes. First, you might have to change the scale of the for it to look right (e.g. the cex.main command). Second, you can change the 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 s 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 s. You can change the s for these plots but that’s for another time.

Hope this helps!

To leave a comment for the author, please follow the link and comment on their blog: James Keirstead » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.