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!