r语言读写word_R语言:在word中插入ggplot
最近CRAN上新了一个叫eoffice的package,并且不时被各路大佬提起。这个包的功能刚好也符合我最近的需求,这次带各位先来试试水。包的官方介绍:
1. Introductioncran.r-project.org
这次主要试试在word中用该包插入ggplot。既然要试,图就整的复杂一点:
> rm(list = ls())
> gc()used (Mb) gc trigger (Mb) max used (Mb)
Ncells 2423917 129.5 4543915 242.7 4543915 242.7
Vcells 6168695 47.1 12255594 93.6 10143094 77.4
>
> pacman::p_load(data.table, magrittr, ggplot2, ggthemr, cowplot, stringr, dplyr, patchwork)
>
> library(eoffice)
> library(gridExtra)
>
> ggthemr('fresh')
>
> test<-mtcars %>% mutate(text = rownames(mtcars)) %>% data.table() %$%
+ .[,c('brand', 'model','tag'):=tstrsplit(text, split = ' ')]
> testsum<-test[,.(mpg = mean(mpg, na.rm = T), wt = mean(wt, na.rm = T)), by = 'brand'][1:5,]
>
>
> p1<-ggplot(test)+
+ geom_histogram(aes(x = mpg))+
+ coord_flip()+
+ scale_y_continuous(limits = c(0,8))+
+ annotation_custom(grob = tableGrob(testsum, rows = NULL),
+ xmin = 25, xmax = 33, ymin = 5, ymax = 7)
> p2<-ggplot(test)+
+ geom_point(aes(x = disp, y = hp))
> p3<-ggplot(test)+
+ geom_hex(aes(x = drat, y = wt))
>
> p<-p1+(p2/p3)
> p
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
出图如下:
拼图用的patchwork,如何在图中插入表格请参考我之前写的文章:传送门。
然后按照官方介绍,直接用todocx把图片插入word:
> todocx(p, filename = 'D:/R/eoffice/testword.docx', width = 6.5, height = 5,
> append = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Warning message:
dml_docx() is deprecated and will be removed in the next version (> 0.2.0), use devEMF::emf instead.
注意:append设置为F的话,filename文件原有的内容会被完全覆盖!第一次尝试千万注意备份文件。
提示一些警告,不过不要紧,看看filename的文件:
这么方便的工具,排版当然不可能帮你一次排好的。要自己调长宽,并且像图中有grob对象(就是那张表)的情况下,这些对象还要单独调整。
这玩意儿牛逼的地方在于,图片导出word的时候就是矢量图,所有元素都可以选中并编辑,像上图那样。但凡投过paper的都知道期刊会要求稿件里插图的矢量图,这个包在这方面可以为我们省下不少功夫。
不过这也有缺点,要是要素过多(例如大量数据的散点图),一般电脑打开这个word肯定死机。就上面那个图片,我的笔电打开word都已经有点卡了...
此外,如果导出的时候filename的文件已在word打开,就会报错:
> todocx(p, filename = 'D:/R/eoffice/testword.docx', width = 6.5, height = 5,
+ append = F)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Error in value[[3L]](cond) : Could not write "D:/R/eoffice/testword.docx" [zip error: `Cannot open zip file `D:/R/eoffice/testword.docx` for writing` in file `zip.c:373`]
此外: Warning messages:
1: In grob$wrapvp <- vp : 到达了流逝时间限制
2: dml_docx() is deprecated and will be removed in the next version (> 0.2.0), use devEMF::emf instead.
将append设置为T,就可以在已存在的文档最后面插入图片了:
> todocx(p, filename = 'D:/R/eoffice/testword_2.docx', width = 6.5, height = 5,
+ append = T)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
总的来说,eoffice无法调整导出图片为栅格(例如jpeg),因此导出到word可能是eoffice最不适用的场景了。比较建议的用法还是每张图片单独存成一个ppt或pdf。
r语言读写word_R语言:在word中插入ggplot相关推荐
- C语言:向一个有序数组中插入一个数据,并保持数组的有序性。
C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...
- 代码放进word_在Word中插入代码并高亮显示(针对会编程的小伙伴)
有的时候需要将代码插入到文档当中,而你又不熟悉专门的排版语言.或者说只是临时需要.其实可以在Word中插入代码并使之进行高亮显示,达到和专用排版工具大致一样的效果,使代码的阅读体验更好. 如下图所示, ...
- 如何向Word中插入代码块
如何向Word中插入代码块 对于一些用Word写的论文,作业中如果要插入代码,无论是直接复制粘贴还是加上灰色无边框的效果看上去十分不美观, 优雅的插入代码块给别人的印象就会好很多. 思路:将代码块的原 ...
- 计算机绘制表格教案,word中插入表格教案
篇一:word中插入表格教学反思 <Word表格的制作>教学反思 计算机课程对于培养学生的科学精神.创新精神和实践能力,提高学生对信息社会的适应能力等方面都具有重要的意义.在计算机课的教学 ...
- 在word中插入公式并给公式编号
插入公式和设置编号: 在word中插入公式应当说相当简单了,可能你会想到用:插入->公式 但该方法插入公式有很大的弊端,比如说,看上去并不是很好看,比如说引用起来不方便,比如说LaTeX支持不全 ...
- 如何在word中插入比较好看的代码
在word中插入比较好看的代码 方法一:直接用word 特点: 有格式,外侧有隐形的边框 方法: 点击插入→对象(文本区域)→对象类型中选择OpenDocument Text→点击确定 弹出一个新的界 ...
- 在word中插入高亮代码
在写文档的时候特别是技术文档,经常需要在word中插入代码, 直接复制代码的话不是很美观,于是去网上学来一个工具,先附上在线网址:http://www.planetb.ca/syntax-highli ...
- 使用Aurora在Word中插入算法伪代码教程,亲测有效,写论文必备
1. 安装Aurora和miktex软件 安装miktex,附百度网盘链接链接:https://pan.baidu.com/s/12l_88pDKmoIBESJ_Kek85Q 提取码:v0t5 下载 ...
- word中插入带入带有上标和下标的字符串
转载:由于工作的需求,需要在word中插入带入带有上标和下标的字符串,比如这样的一个字符串:SO₄²⁻(mg/L).在网上搜了好久,终是摸索出点思路. 解决办法:使用转义字符加Unicode的HexE ...
最新文章
- 从零入门 Serverless | SAE 场景下,应用流量的负载均衡及路由策略配置实践
- 字符串相似度匹配算法python_算法字符串相似度得分/哈希
- ajax实现两个aspx跳转,请问ajax执行成功后可以跳转到另一个页面吗?
- Vue的过滤器,生命周期的钩子函数和使用Vue-router
- Java面试题详解二:java中的关键字
- 公寓式楼房宜南北走向
- Hive SQL面试题(附答案)
- 手把手教会你mp3音频转文字怎么操作,快来码住
- ocata版本vlan模式配置【ovs】
- html里用js实现随机抽奖,javascript实现随机抽奖功能
- H264中一些很有用的解释
- 贪心科技机器学习训练营(三)
- 20181012 excel 填充序列 快捷键
- Java中的UTF-8、UTF-16编码字符所占字节数
- jetson nano-mavros-px4
- xinxin - 初步学习tkinter
- JPS网页中文乱码解决方案
- 【深度学习】【物联网】深度解读:深度学习在IoT大数据和流分析中的应用
- 【广州芯享家】服务器维护过程中,你需要了解的5个小常识
- Springboot集成rabbitmq实现延时队列
热门文章
- php异步轮询如何实现,深入剖析JavaScript异步之事件轮询
- python支持gui编程_Python GUI编程完整示例
- redmine两个mysql_Redmine3.4.2安装记(Win10+MySql)
- UE4异步编程专题 - TFunction
- C语言的putpiel函数,C语言graphics.h函数介绍
- android 5.0.1 libdvm.so,Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)
- 是人是谁_其实,我们每个人心中都有一把尺子,谁好谁歹谁心里都明白……
- c++邮递员投递经过特定点_厉害了斑马鱼,动物实验体天团C位
- 【转】Azure应用部署方式对比
- 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET