R画图中英文字体完美解决方案 - 简书.pdf

R画图中英文字体完美解决方案 - 简书.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 包注册特定的字体 ,然后调用

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档