查看原文
其他

图片含有中文生成PDF是乱码怎么办?

阿越就是我 医学和生信笔记 2023-06-15
关注公众号,发送R语言Python,获取学习资料!

如果你的图片中有中文,那你生成PDF格式时,就会出现乱码!网上有很多解决方法,比如说使用Cairo包,但是对我来说,没用,不管怎么弄中文就是乱码!

比如下面这样,正常情况应该是这样一张图:

plot(1:10,1:10,main = "这是中文大标题",sub = "这是中文小标题",xlab="这是横轴",ylab="这是纵轴")
image-20220417183915924

但是如果你生成PDF格式,就会变成乱码:

pdf("chinese.pdf")
plot(1:10,1:10,main = "这是中文大标题",sub = "这是中文小标题",xlab="这是横轴",ylab="这是纵轴")
dev.off()

是不是很烦躁?

比较通用的解决方式是用showtext包。使用起来非常简单!

library(showtext) # 加载R包

showtext_auto() # 就是这句代码!

接下来你保存为PDF格式也不会乱码了:

pdf("chinese1.pdf")
plot(1:10,1:10,main = "这是中文大标题",sub = "这是中文小标题",xlab="这是横轴",ylab="这是纵轴")
dev.off()

而且你还能随意更改字体:

font_add("fzst", "FZSTK.TTF")

pdf("chinese2.pdf")
plot(1:10,1:10,main = "这是中文大标题",sub = "这是中文小标题",xlab="这是横轴",ylab="这是纵轴",family = "fzst") # 只要和你定义的名字一样就行!
dev.off()

font_add()函数使用起来也是非常简单,一般只需要提供2个参数,第一个是随便一个字符串,真的是随便,第2个是你的字体名字。

正常来说对于Windows用户来说,你的字体在C:\Windows\Fonts这个路径下,然后你选中一个字体,右键单击,点击属性,就可以看到字体名字了,复制一下就是你需要的第二个参数。

然后你就能愉快的使用各种字体了~


以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发

欢迎在评论区留言或直接添加我的微信!




欢迎关注公众号:医学和生信笔记

医学和生信笔记 公众号主要分享:1.医学小知识、肛肠科小知识;2.R语言和Python相关的数据分析、可视化、机器学习等;3.生物信息学学习资料和自己的学习笔记!



往期回顾

让你的图片中文不再乱码!


画一个好看的森林图


corrplot包可视化相关矩阵详解


R语言ggsci配色包详解


让你的ggplot2主题支持markdown和css


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存