Changing the font of R base graphic plots.
This article is originally published at https://rcrastinate.blogspot.com/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.
Thanks for visiting r-craft.org
This article is originally published at https://rcrastinate.blogspot.com/
Please visit source website for post related comments.