近期使用R绘图遇到两个问题

1. 使用不同的字体

2. 保存 plot 至 pdf 当字体嵌入pdf (embed the font)

使用extrafont和Ghostscript能够解决这两个问题。

1. Ghostscript

安装: http://www.ghostscript.com/download/gsdnld.html

2. extrafont (R package)

下面命令都是在R中执行

- 安装

> install.packages("extrafont")
> library(extrafont)
> #这一步定位系统字体。比方C:\Windows\Fonts\*.ttf, 须要几分钟的时间
> font_import()
> loadfonts()

- 使用

> #查看可用的font family
> fonts()
> library(ggplot2)
> #使用字体Times New Roman绘图
> p <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
xlab("Weight") + ylab("Miles per Gallon") +
theme(text=element_text(family="Times New Roman"))
> #保存pdf
> ggsave("font_ggplot.pdf", plot=p)

- 将字体嵌入pdf

> #指定ghostscript的路径
> Sys.setenv(R_GSCMD = "C:/Program Files/gs/gs9.05/bin/gswin32c.exe")
> #嵌入字体
> embed_fonts("font_ggplot.pdf", outfile="font_ggplot_embed.pdf")

所得到的font_ggplot_embed.pdf就是所须要的pdf啦!

能够使用Adobe Reader -> File -> Properties -> Fonts 来查看字体是否已嵌入

(以上内容部分来自http://cran.r-project.org/web/packages/extrafont/README.html)

Bonus:直接使用Ghostscript命令行嵌入字体到pdf

(在cmd中执行,别忘了将ghostscript增加环境变量)

gswin32c -sFONTPATH=C:\Windows\Fonts -sDEVICE=pdfwrite -dEmbedAllFonts=true -o output.pdf input.pdf

版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. 维护MMO项目的随想
  2. Ubuntu Navicat正版永久使用方法
  3. java.io.FileOutputStream类的5个构造方法
  4. C开发之----#if、#ifdef、#if defined之间的区别
  5. User cannot be resolved to a type
  6. WebService之Axis2
  7. (简单) POJ 1961 Period,扩展KMP。
  8. web server性能优化浅谈
  9. 使用OGG添加唯一标识字段到目标表
  10. java.net.UnknownHostException 异常处理
  11. ubuntu解压命令(转)
  12. aps.net国际化本地资源 .resources”正确嵌入或链接到程序集
  13. python学习之老男孩python全栈第九期_day001作业
  14. emmc和ssd的区别【转】
  15. .NET Core2.0 使用EF做数据操作
  16. nodejs ejs模板数据库操作
  17. .net WebService 大数据量时性能的提高
  18. lintcode-507-摆动排序 II
  19. bzoj 1856 卡特兰数
  20. 一分钟完成pip安装

热门文章

  1. C#中的动态特性
  2. Andrid 多线程下载
  3. Java 启动线程的方式
  4. Linux网络编程一站式学习
  5. Web 前端开发环境
  6. 基于ORACLE建表和循环回路来创建数据库存储过程SQL语句来实现
  7. Hadoop Streaming 得到mapreduce_map_input_file中遇到的问题的版本号
  8. atcoder 它February 29th
  9. jQuery的三种bind/One/Live/On事件绑定使用方法
  10. hive 的分隔符、orderby sort by distribute by的优化