近期使用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

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

R - 变化plot字形,嵌入字体以pdf的更多相关文章

  1. 嵌入字体@font-face

    嵌入字体@font-face @font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体. 语法: @font-face { font-family : 字体名称; s ...

  2. 【CSS3】---嵌入字体@font-face

    @font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体. 语法: @font-face { font-family : 字体名称; src : 字体文件在服务器上的 ...

  3. as3.0 嵌入字体的用法

    var txt:TextField = new TextField();//创建文本 txt.embedFonts=true;//确定嵌入字体 var font:Font=new MyFont();/ ...

  4. [ActionScript 3.0] 使用Embed在类中嵌入字体

    package { import flash.display.Sprite; import flash.text.Font; import flash.text.TextField; import f ...

  5. [ActionScript 3.0] 嵌入字体

    首先我们要生成一个swf的字体库,以微软雅黑为例,新建YaHei_font.fla,ctrl+L,在库面板中右键→新建字型,弹出字体元件属性窗口,选择要嵌入的字体, 并选择为ActionScript ...

  6. 学习《R数据科学》高清中文PDF+高清英文PDF+源代码

    学习R有不会的就查工具书<R数据科学>, 工具不是重点,创造价值才是目的.具体到数据科学,表现形式往往是提供解决方案或者做出某种决策.至于使用什么语言,采用什么工具,不本质.用 R 还是 ...

  7. pdf嵌入字体

    论文提交时,要求所有的字体都是嵌入的,为这个问题折腾了很久,发现了一个很好的答案,记一下: http://stackoverflow.com/questions/4231656/how-do-i-em ...

  8. R语言plot函数参数合集

    最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅. plot(x, y = NULL, type = "p", xlim = N ...

  9. PPT嵌入字体的方法

    使用ppt的时候,很多时候会使用一些特殊字体,在其他计算机上无法正常显示.这个时候就需要导出PPT的时候进行字体嵌入. 1.1 常规方法 所谓常规方法,是指那些字体的许可协议允许随意分发,我们才能导出 ...

随机推荐

  1. ProducerConsumerDemo

    package algorithm; public class ProducerConsumer { public static void main(String[] args) { SyncStac ...

  2. ROADS+dijkstra的灵活运用+POJ

    ROADS Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10742   Accepted: 3949 Descriptio ...

  3. NSUserDefaults API简单的介绍和使用英文文件

    Overview The NSUserDefaults class provides a programmatic interface for interacting with the default ...

  4. table在 点击线条颜色

    效果图: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...

  5. Spring 通过来AOP 实现前置,环绕,异常通知,注解(转)

    本节主要内容:     1. Spring AOP前置通知案例     2. Spring AOP环绕通知案例     3. Spring AOP异常通知案例     4. Spring AOP注解使 ...

  6. BZOJ 3505 CQOI 2014 数三角形 数学

    标题效果:到m*n该网络格,问:有网络格是一个三角形的顶点的数目. 思维:数学.首先计算所有三个相同的,不.然后,在上线的一个点失去了三个点是其中.需要注意的是,答案开放long long. CODE ...

  7. 选择一个利于SEO的空间

    大家好.今天蜗牛将给大家分享怎么选择一个利于SEO的站点空间. 一.什么是站点空间? 站点空间,是用来存你的站点的HTML,.图片.文件等的一个远程硬盘空间(就像你的电脑里面的空间一回事儿).依据不同 ...

  8. ABP之动态WebAPI

    ABP之动态WebAPI ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 ...

  9. Unity + iBatis + Asp.net Mvc 系统搭建

    Unity + iBatis + Asp.net Mvc 系统搭建 之前用EntityFramework Code First做了一些小项目,很是方便:后来在一个 Java 项目中接触了myBatis ...

  10. Android第一次打开应用程序,实现向导界面

    转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/42079167 先说下思路:1.利用Preference存储数据,来记录是否是 ...