在某些时候,需要在R画图中添加中文,但是默认情况下,R对中文的支持不好。

当用R画PDF图,并且图中有中文的时候,安装并加载如下包
library(showtext)
然后:
showtext.auto(enable = TRUE)
这句命令表示之后用上同样的字体。
如果要添加字体:
font.add('SimSun', regular = '/path/to/your/simsun.ttc')
这个地方要注意,你必须给定指定的字体的位置。
如果你使用的是MAC,可以打开 font book,查找你想要字体的位置。
如SimSun:/Library/Fonts/Microsoft/SimSun.ttf
 
如果需要将含有中文字体的图形保存为pdf文件,同样可以利用前面讲到的方案,最新版的showtext包已经支持了ggplot2,推荐使用此种方案。
 
showtext包理论上能够调用系统已安装的任何字体,完整的字体列表可以通过font.files()查看。
这样,在你写的R代码中,开头添加
library(showtext)
showtext.auto(enable=True)
font.add('SimSun', regular = '/Library/Fonts/Microsoft/SimSun.ttf')

showtext.begin();
# 一系列绘图命令
set.seed(123);
plot(1, xlim = c(-3, 3), ylim = c(-3, 3), type = "n");
text(runif(100, -3, 3), runif(100, -3, 3),
intToUtf8(round(runif(100, 19968, 40869)), multiple = TRUE),
col = rgb(runif(100), runif(100), runif(100), 0.5 + runif(100)/2),
cex = 2, family = "SimSun");
title("随机汉字", family = "SimSun");
# 停止使用showtext
showtext.end();


 

R画图中英文字体完美解决方案的更多相关文章

  1. Jasperreports以及iReport4.5报表PDF导出字体完美解决方案

    在使用Jasperreports以及iReport设计报表时,导出PDF是一个常见的需求.网上解决PDF导出中文显示问题相关的文章很多,无非就是设置控件的pdf font name和pdf encod ...

  2. css自定义字体完美解决方案example

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。

    http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...

  4. 中文版Chrome浏览器不支持12px以下字体的解决方案

    中文版Chrome浏览器不支持12px以下字体的解决方案 Chrome 27之前的中文版桌面浏览器会默认设定页面的最小字号是12px,英文版则没有限制,主要是因为chrome认为汉字小于12px就会增 ...

  5. css中文字体乱码解决方案

    css中文字体乱码解决方案:把css编码和html页面编码统一起来.如果html页面是utf-8.css.js也统一成utf-8编码.还有一个避免中文乱码的办法就是把中文字体写成英文来表示 css中文 ...

  6. FragmentPagerAdapter刷新fragment最完美解决方案

    FragmentPagerAdapter刷新fragment最完美解决方案   先感谢kingjxl2006的博客文章<Android FragmentPagerAdapter数据刷新notif ...

  7. Android适配底部返回键等虚拟键盘的完美解决方案

    这个问题来来回回困扰了我很久,一直没能妥善解决. 场景1:华为手机遮挡了屏幕底部. 场景2:进入应用时,虚拟键自动缩回,留下空白区域. 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占 ...

  8. Android 适配底部返回键等虚拟键盘的完美解决方案

    这个问题来来回回困扰了我很久,一直没能妥善解决. 场景1:华为手机遮挡了屏幕底部. 场景2:进入应用时,虚拟键自动缩回,留下空白区域. 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占 ...

  9. Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案

    原文地址:Apache服务器网站访问伪静态内页出现No input file specified.的完美解决方案 启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:&quo ...

随机推荐

  1. Linux下browser-sync无法启动Chrome的解决方法

    笔者的环境: OS: Ubuntu Linux Browser: Chrome, Firefox 每次希望启动chrome浏览器,系统都会报错: browser-sync start -s --dir ...

  2. WCF Security(转载)

    WCF Security 主要包括 "Transfer Security"."Access Control"."Auditing" 几个部分 ...

  3. struts2所有组件

    struts2所有组件(动作,结果,拦截器) 动作在框架中可作为MVC模式的模型.这个角色的主要职责是控制业务逻辑,动作使用execute()方法来实现这个功能. 这个方法中的代码应该只关注与请求相关 ...

  4. django url.py使用

    主要对象:patterns和url url有两个主要的参数,第一个是正则模板,第二个是处理的方法 他们的对应关系是,当我们在浏览器当中url的形式与正则相匹配时 就转向处理方法 如果url.py中的值 ...

  5. LeetCode Reverse String

    原题链接在这里:https://leetcode.com/problems/reverse-string/ 题目: Write a function that takes a string as in ...

  6. css初始化样式代码

    为什么要初始化CSS? CSS初始化是指重设浏览器的样式.不同的浏览器默认的样式可能不尽相同,所以开发时的第一件事可能就是如何把它们统一.如果没对CSS初始化往往会出现浏览器之间的页面差异.每次新开发 ...

  7. Q的深层嵌套

    1.如果将异步方法用同步的方式执行,try catch能捕获到错误,同时不会阻塞到主进程,因此console.log(3333)能执行. var fs = require('fs'); try { v ...

  8. centos7优化内核参数详解

    cat /etc/sysctl.conf #CTCDN系统优化参数 #关闭ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.d ...

  9. nodejs 的ajax获取数据express

    var request = require('request'); request('https://api.weixin.qq.com/cgi-bin/ticket/getticket?access ...

  10. Eclipse开发快捷键技巧

    1.alt+?或alt+/:自动补全代码或者提示代码 这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个手指轻松按下这2个键的时候,自动就补全System.out.println() ...