My plot works, except I'm not able to get the font family to change. It always stays with the default, even when I can other things to change like color, size, and justification.
Here's my code:
ggplot(data = SeattleJuly17Data,
aes(x = Price, y = SatisfactionScore, col = RoomType)) +
geom_point() +
xlim(0,500) +
geom_smooth() +
ggtitle("Satisfaction Trends by Price and Room Type") +
theme(plot.title = element_text(family = "Calibri",
size=15,
color="Red",
hjust = 0.5)) +
xlab("Price per Night") +
ylab("Guest Satisfaction Score")
To change all the fonts in your plot plot + theme(text=element_text(family="mono")) Where mono is your chosen font. List of default font options: mono. sans.
The default font size of geom_text() is 3.88. You can change the size using the size argument in geom_text() for a single plot. If you want to use the same updated size, you can set this with update_geom_defaults() , e.g. update_geom_defaults("text", list(size = 6)) .
You can use the extrafont
package to pick the font that you want.
library(ggplot2)
library(ggpmisc)
### Use more updated dev version on Github
# install.packages("remotes")
# remotes::install_github("wch/extrafont")
library(extrafont)
### Run this one only ONCE to import all fonts to R
# font_import(prompt = FALSE)
# or import only specific font
font_import(pattern = "DejaVu", prompt = FALSE)
# if the font is not in default search path e.g. `C:/Windows/Fonts/`
myfontPath <- "C:/Users/xxx/Downloads/Fonts/"
font_import(pattern = "DejaVu",
paths = myfontPath,
recursive = TRUE,
prompt = FALSE)
### Load fonts
# Options: "all", "pdf", "postscript", or "win"
loadfonts(device = "all")
### Choose the desired font
myFont <- "DejaVu Sans Mono"
# Can also override the default sans, mono or serif fonts
windowsFonts(mono = myFont)
windowsFonts()
### Plot
set.seed(666)
df <- data.frame(x = c(1:100))
df$y <- 2 + 3*df$x + rnorm(100, sd = 40)
formula1 <- y ~ x
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, formula = formula1) +
stat_poly_eq(aes(label = paste(..eq.label.., sep = "~~~")),
family = myFont, # specify font
label.x.npc = "right", label.y.npc = 0.15,
eq.with.lhs = "italic(hat(y))~`=`~",
eq.x.rhs = "~italic(x)",
formula = formula1, parse = TRUE, size = 6) +
stat_poly_eq(aes(label = paste(..rr.label.., sep = "~~~")),
family = myFont,
label.x.npc = "right", label.y.npc = "bottom",
formula = formula1, parse = TRUE, size = 6) +
theme_bw(base_size = 20,
base_family = myFont) # specify font
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With