R 添加mac字体
#安装,加载showtext包
> install.packages(showtext)
> library(showtext)
# 查看R已安装字体
> font_families()
[1] "sans" "serif" "mono" "wqy-microhei"
发现只要少数几个字体,如果我们想使用mac系统已有字体,比如Times New Roman,可以从/System/Library/Fonts/ 或者/Library/Fonts/ 中找到
ls /System/Library/Fonts/
##添加字体到R
##font_add(自定义的字体名,字体路径)
> font_add("Times","/System/Library/Fonts/Times.ttc")
> font_add("Arial","/Library/Fonts/Arial.ttf")
##再次查看已有字体,就已经添加成功了,其它字体也是一样的方法
> font_families()
[1] "sans" "serif" "mono" "wqy-microhei"
[5] "Times" "Arial"
作图过程:
###数据
df <- data.frame(
gp = factor(rep(letters[1:3], each = 10)),
y = rnorm(30)
)
###作图
##注意:用showtext添加的字体,只能使用showtext的方法,不能直接在pdf('Figure 1.pdf',family = "Arial")
pdf("test.pdf",width = 6,height = 4) ## 必须保存;pdf、png、jpg。。
showtext_begin(); ## 必须有
ggplot() + geom_point(data = df, aes(gp, y)) +
xlab("hehe") + ylab("Times New Roman") +
theme(text=element_text(family = "Times"))
showtext_end(); ##必须有
dev.off() ##必须有
Ps. 还有一种使用 extrafont包一条命令导入所有系统字体的方法,但是对我的mac不奏效T T,font_import()时直接exitting了,没找到解决方法。
library(tidyverse)
library(extrafont)
font_import()
#或者 font_import(paths = "/Library/Fonts/" )
#或者 font_import(paths = "/System/Library/Fonts/" )
#然后使用fonts查看已有字体
fonts()
详细方法可见https://rpubs.com/maomaoworm/679092