Changing the font of R base graphic plots.

[This article was first published on Rcrastinate, 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.

Want to change the font used in your R plots? I got a quite simple solution that works on Mac OS.

You need the function ‘quartzFonts’. With this function, you can define additional font families to use in your R base graphic plots. The default font families are ‘sans’, ‘serif’ and ‘mono’.

Let’s say, I want to define a new font family with the ‘Avenir’ font. All I have to do is:

quartzFonts(avenir = c(“Avenir Book”, “Avenir Black”, “Avenir Book Oblique”, 
        “Avenir Black Oblique”))

The first element of the vector is the normal face, then bold face, then italic face, then bold-italic font face. The bold face is used for the title of the plots, for example.
        
Now, R knows how to interpret the font family ‘avenir’. Let’s try this:

par(family = ‘sans’) # the default of R
plot(rnorm(100), rnorm(100), main = “A plot.”)

# Now, do the same with the new ‘Avenir’ font family
par(family = ‘avenir’) # the call to ‘quartzFonts’ above has to be executed first
plot(rnorm(100), rnorm(100), main = “Another plot.”)


You might wonder where you can get the font names from. Well, simply open your Mac OS “Font Book” (it’s called “Schriftsammlung” in German) and look at the title of the font that is written in grey over the sample of the font.



I defined a function ‘.define.fonts’ in my .Rprofile file. So, each time R starts up, I have an invisible function ‘.define.fonts’ available in the environment. If I want to use one of the two alternative fonts, I can just call ‘.define.fonts()’. Here’s the function:

.define.fonts <- function () {
    quartzFonts(avenir = c(“Avenir Book”, “Avenir Black”, “Avenir Book Oblique”, 
        “Avenir Black Oblique”), helvetica = c(“Helvetica Neue Light”, 
        “Helvetica Neue Bold”, “Helvetica Neue Light Italic”, 
        “Helvetica Neue Bold Italic”))
}

You might need to change the names of the ‘helvetica’ family if you run a non-German Mac OS.

To leave a comment for the author, please follow the link and comment on their blog: Rcrastinate.

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.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)