- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R画图中英文字体完美解决方案 - 简书
作者 xiruizhifu (/users/529a 1c8c2dbe) 20 15.12.09 21:16*
添加关注 (/sign_in)
写了2494字 ,被0人关注 ,获得了2个喜欢
(/users/529a 1c8c2dbe)
R画图中英文字体完美解决方案
字数2093 阅读263 评论0 喜欢2
fontforge.png
R语言用来做数据处理和分析很方便 ,借助ggplot2能够方便的画出比较漂亮且信息丰富的图形 ,
但是由于历史原因 ,R对中文的支持并不是很好 ,尤其是作图的时候需要一些特殊的技巧才能完美
的展示中文字体 ,同时对于中英文混合的情况 ,经过一番摸索之后也找到了比较完美的方案。
一句话总结 :在 plot 或者 ggplot2 的 theme 中设定 family 参数 ,如需要保存为 pdf 文件 ,则利
用 showtext 包添加字体 ,如需分别指定中英文字体 ,就制作合适的中英文混合字体。
原生作图函数的中文显示
plot 函数中设置family 参数
在R中 ,使用 plot 函数画图时如果不指定字体 ,中文会显示为乱码 ,比如下面的语句 :
plot(c(1:10), xlab = 横轴, ylab = 纵轴,
main = 中文标题 Title )
得到的图形为 :
06c2ffee487f8d7266b15caa830dba5f.png
此时可以通过设置 family 属性来显示中文字体 ,如下所示:
plot(c(1:10), xlab = 横轴, ylab = 纵轴,
main = 中文标题 Title , family = SimSun)
得到的图形为 :
b68dd014f61fd7df667434.png
可以发现中文根据设置显示为了宋体 ,family 的值可以设置为任何在电脑中已经安装的字体名称 ,
只要该字体包含中文字符 ,那么就可以正常显示中文 ,此外 ,如果想要分别设置主标题、副标题、
坐标轴等的字体样式 ,在 plot 函数中设置 font .main,font .sub,font .axis,font .lab 即可。
通过设置 family 参数能够正常显示中文 ,但是如果想要将画好的图形保存下来还需要费一番周折 ,
对于包含中文的图形 ,如果存储为 png, jpg, tiff 等格式 ,由于这些都是栅格图形 ,均是有一定数
目的像素点组成 ,因此不存在字体能否加载的问题 ,可以直接进行保存。
但是大部分情况下我们希望能够将图形保存为矢量格式 ,因为矢量格式的文件能够无限放大不失
真 ,并且占用磁盘空间小 ,方便保存与后续处理 ,如果有需要的话可以导出为任意分辨率的栅格图
像。然而通过设定 family 参数得到的包含中文字符的图形在保存为 pdf 格式的时候会出错 ,比如执
行下面的语句 :
pdf(test .pdf )
plot(c(1:10), xlab = 横轴, ylab = 纵轴,
main = 中文标题 Title , family = SimSun)
dev .off()
会得到如下输出 :
Error in axis(side = side, at = at, labels = labels, ...) : 字体类别出错
此外: Warning messages:
1: In axis(side = side, at = at, labels = labels, ...) :
PostScript字体数据库里找不到SimSun这个字体系列
错误原因提示的也很清楚 ,生成 pdf 文件的图形设备的字体数据库中找不到指定的字体 ,解决方案
是通过 pdf(test .pdf , family = GB1 ) 设置pdf图形设备使用GB1字体 ,这会调用系统默认的中文
字体 ,如果想要使用指定的中文字体 ,这种方法就不起作用了 ,这种情况下一种可能的方法是利
用 extrafont 包注册特定的字体 ,然后调用
您可能关注的文档
- Vijeo Citect 7.4与AB DCS OPC通讯配置.pdf
- CSR86XX ROM 问题集锦.pdf
- Linux系统静态DNS配置指南.pdf
- CentOS 7下PHP 7的环境安装.pdf
- Gen9服务器操作系统安装建议.pdf
- 罗杰康VLAN配置说明.pdf
- openERP邮件(发信、收信).pdf
- 7750BRAS业务PPPOE开局配置手册.pdf
- ARToolkit在VS2010(Win7 64位)下的配置及第一个开发程序的编译与运行.pdf
- 泛微e-cology常见_问题解决及性能调优.pdf
- -高中语文 第6课辛弃疾词两首同步检测 新人教版必修4 .doc
- 高中物理 1.5 电势差练习 新人教版选修3-1.doc
- 高中英语 Unit4 Making the+news综合测试题 新人教版必修5.doc
- 高中数学 4-2-3 直线与圆的方程的应用能力强化提升 新人教A版必修2.doc
- 高中数学 第一次月综合素能检测 新人教A版必修1.doc
- 高中数学 3.4 简单线性规划(第1课时)练习 北师大版必修5.doc
- 高中数学 2-2-2 平面与平面平行的判定能力强化提升 新人教A版必修2.doc
- 高中数学 1-3-2 球的体积和表面积能力强化提升 新人教A版必修2.doc
- 高中数学 3.3 二元一次不等式组与简单的线性规划问题第3课时练习 .doc
- 高中数学 3.3 基本不等式(第1课时)练习 北师大版必修5.doc
文档评论(0)