R语言ggplot2绘图转PDF中文乱码问题
ggplot2与中文乱码的Solution
字体文件
首先假设你有一个Windows系统,其次进行R语言编程所使用的IDE是RStudio非常好用的集成开发环境。
然后在Windows系统中找到中文字体,比如宋体或黑体,再找到一个英文字体,比如Times New Roman。它们大概在C盘的Windows/Fonts路径下。
找出所需的字体文件,比如宋体的字体文件是simsun.ttc,黑体的字体文件是simhei.ttf,Times New Roman的字体文件是times.ttf。
找到字体文件就是成功的一半了,然后我把它们随便放到一个地方准备加载。
showtext包
然后需要在R中调用showtext包,如果没有这个包,请安装它。
# 调用showtext包 |
在上面,我们载入了三种字体,并重命名请随意命名后供ggplot2调用。
注意载入的路径,在Windows下好像要使用反斜杠。
注意,使用字体的过程中,可能会出现提示没有这种字体!!!!!!无妨,重新执行一下上面的命令可以解决。
ggplot2绘图带中文
p <- ggplot() + geom_point() + ... + |
在上面的命令中,我们把X轴的字体指定为Times New Roman,Y轴的字体指定为宋体。
转换为PDF
p <- ggplot() + geom_point() + ... + |
在上面的命令中,我们把p转换为了PDF。再次提醒,这个过程中,可能会出现提示没有这种字体!!!!!!无妨,重新执行一下上面的字体加载命令即可解决。
然后我们查看一下生成的PDF,应该会得到一个X轴字体是Times New Roman的英文Hello World,Y轴字体是宋体的中文你好世界。
如果你使用RStudio的图片预览功能,并且尝试Save as PDF,那么可能依然会出现中文乱码问题。
去试试看吧!
提醒
上面的内容只能解决文字中不包含中英文混合的情况。如果需要中英文混合,那么可能需要把某两种中英文字体文件合并生成新的字体文件,然后加载进来才行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WenQian Dong's Web!