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

    package com.ango.deskclock; import android.content.Context; import android.content.Intent; import an ...

  2. Visual Studio Team Services使用教程--Readers tfs组成员添加

  3. 跟着辛星认识一下PHP的自己主动载入

    作为一个框架,文件的载入机制是不能少的,那么我们应该怎么载入呢,这些PHP已经给我们想好了,所以我们仅仅须要依照规则办事就能够了,PHP中有两个函数能够完毕这个功能,第一个是__autoload,如今 ...

  4. Linux 介绍了相关的文件夹

    学习Linux,先了解Linux标准的文件夹结构是非常重要的,学习的一个很好的铺垫之后的行动.去罗列大而全的所有文件夹. 本文主要说明.笔者本人接触,须要了解的一些文件文件夹,当然本文也会不断的更新或 ...

  5. Quartus II 11.0破发点(不同的是低版本号)

    小订单: 近期用到了黑金的altera飓风4带的开发板,套件里面带的Quartus II软件版本号为11.0,之前所用版本号为9.1,所以打算吧11.0版本号也安装一下.没想到这个破解的过程让我属实蛋 ...

  6. SICP 习题(1.1,1.2,1.3,1.4)解题总结。

    近来在重读SICP,以前读过一次,读了第一二章就没有坚持下去,时间一长就基本忘记了,脑海里什么都不剩,就隐约记得自己曾经读过一本很牛B的书. 这次读希望能够扎实一点,不管能读到哪里,希望可以理解一些东 ...

  7. 每天一点点java---继承exception类来实现自己的异常类

    package prac_1; /** * <p>Title: 捕获异常和实现自己的异常类</p> * <p>Description: 通过继承Exception类 ...

  8. java_访问权限修饰符

    java的访问权限修饰符有四种,根据权限由大到小的顺序为:public,protected,包访问权限(默认,没有修饰符),private. 根据修饰的东西不同,详细介绍如下: 1.修饰类的话分为两种 ...

  9. JNDI数据源配置注意事项

    假设是在原有project上改动 1,applicationContext.xml中改动当中的value值 <bean id="dataSource" class=" ...

  10. 平均得分 【杭州电-HDOJ-2023】 附加题+详细说明

    /* 平均得分 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...