ggplot 中文字体


两种方法可实现在ggplot图形中采用中文字体,extrafontshowtext包。

extrafont

extrafont目前仅支持TrueType字体。安装extrafont, 并将字体导入extrafont 数据库,仅安装的时候运行一次即可:

install.packages(extrafont)
library(extrafont)
font_import()

# 显示字体信息
fonts()

然后每次运行R的时候只需要加载包和字体即可

library(extrafont)
loadfonts()

然后ggplot中指定字体即可

library(ggplot2)
ggplot(mtcars, aes(mpg, disp)) + geom_point() +
  labs(x = "每加仑行使公里数", y = "排量") +
  theme(axis.title = element_text(family = "SimHei"))

图片要保存为pdf的话,再生成pdf文件后需要嵌入字体

# 插入字体到pdf文件
embed_fonts("<font_plot.pdf>")

showtext

showtext支持多种字体格式,但是目前在Rstudio viewer面板不能正确显示。

library(showtext)
## Loading required package: sysfonts
## Loading required package: showtextdb
## 
## Attaching package: 'showtextdb'
## The following object is masked from 'package:extrafont':
## 
##     font_install
# 添加字体
# font_files()显示可添加的字体
font_add("KaiTi", "/Library/Fonts/Microsoft/Kaiti.ttf")
# 自带中文字体wqy-microhei
showtext_auto()
ggplot(mtcars, aes(mpg, disp)) + geom_point() +
  labs(x = "每加仑行使公里数", y = "排量") +
  theme(axis.title = element_text(family = "KaiTi"))

这只是在Mac OS系统测试,windows可能会有些不同,具体可阅读这两个包的帮助文档。


一路嘿嘿

Bioinformatics, R enthusiast. Thoughts on reasarch, personal experience and other distractions.

Tags

blogdown font ggplot git github github pages Homebrew html hugo icon liner algebra linux machine learning netlify R scholar sublime text 3 tidyverse