eoffice告诉你不会用AI和PS没关系
eoffice 来告诉你不会用 AI 和 PS 没有关系,直接用 ppt 就可以了。
1.安装
devtools::install_github("guokai8/eoffice")
## eoffice is available on CRAN
install.packages("eoffice")
在 Window 上使用上面代码很顺利的就装上了,但在服务器上安装就报错了,具体报错如下。
ERROR: dependency ‘magick’ is not available for package ‘eoffice’
很明显不就是缺了 magick
包吗,缺啥按啥是基本指导思想,然后运行 install.packages("eoffice")
,果然事情不会那么简单,依旧报错,不过这次报错中有一些比较有用的信息。
--------------------------- [ANTICONF] --------------------------------
Configuration failed to find the Magick++ library. Try installing:
- deb: libmagick++-dev (Debian, Ubuntu)
- rpm: ImageMagick-c++-devel (Fedora, CentOS, RHEL)
- csw: imagemagick_dev (Solaris)
- brew imagemagick@6 (MacOS)
For Ubuntu versions Trusty (14.04) and Xenial (16.04) use our PPA:
sudo add-apt-repository -y ppa:cran/imagemagick
sudo apt-get update
sudo apt-get install -y libmagick++-dev
If Magick++ is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a Magick++.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
-------------------------- [ERROR MESSAGE] ---------------------------
<stdin>:1:10: fatal error: Magick++.h: No such file or directory
compilation terminated.
--------------------------------------------------------------------
上面说的很清楚,是服务器里面缺了库,还亲切的给出了不同系统对应需要安装的库。因为服务器系统是 Ubuntu,所以就先试着安装一下 libmagick++-dev
,这我也不会装呀,那就赶紧谷歌一下 libmagic-dev install ubuntu,解决方案如下:
sudo apt-get update
sudo apt-get install libmagic-dev
随后再依次安装 magick
和 eoffice
就可以了。
2.使用说明
看这个的包最初目是将图片保存为可编辑的 ppt,但是里面还封装了一些比较实用的功能所以就顺带一起说了。
2.1 保存图片到 office
使用 topptx/todocx
这两个函数来分别实现保存到 ppt 和 doc 中,保存到 ppt 中的图片,取消组合之后就可以随意修改了。
topptx/todocx
两个函数的参数比较简单,也完全一致,下面是简单说明。
topptx(
figure = p,
filename = "mtcars.pptx",
title = "test1",
width = 6,
height = 6,
units = "in",
append = T, # 是否可以在文件中继续添加其他图片
devsize = F # 是否使用图片在Rstudio中所显示的尺寸
)
2.1.1 保存非 ggplot object
# 基础作图函数
plot(mtcars$mpg, mtcars$disp)
topptx(filename = "mtcars.pptx",append = T)
# 其他作图的包
library(ComplexHeatmap)
column_ha = HeatmapAnnotation(foo1 = runif(10), bar1 = anno_barplot(runif(10)))
row_ha = rowAnnotation(foo2 = runif(10), bar2 = anno_barplot(runif(10)))
Heatmap(matrix(rnorm(100), 10), name = "mat", top_annotation = column_ha, right_annotation = row_ha)
topptx(filename = "ComplexHeatmap.pptx")
## ggplot2作的图
ggplot(mtcars, aes(mpg, disp, color = factor(cyl))) + geom_point()
topptx(filename = "mtcars.pptx",append = T,title = "ggplot2")
2.1.2 保存 ggplot object
如果想要在循环中使用,可以使用如下代码来实现。
p <- ggplot(mtcars, aes(mpg, disp, color = factor(cyl))) + geom_point()
topptx(p, filename = "mtcars.pptx", width = 6, height = 4,append = T,title = "loop code")
2.1.3 转化成 ggplot object
如果图片保存失败,可以使用 convertplot
将图片转换成 ggplot object再保存。
p <- convertplot(plot(1:10))
tofigure(p, filename = "test.pdf")
topptx(p, filename = "test.pptx")
2.2 保存表格到 office
使用 totable
将表格保存到 office 中,其中参数 format
不填写的话会自动根据文件名后缀进行识别,支持 pptx 和 docx 两种格式。
totable(head(mtcars), filename = "mtcars.table.docx")
totable(head(mtcars), filename = "mtcars.table.pptx")
2.3 读取 office 中数据
tabs <- eoffice::inoffice(filename = "mtcars.table.pptx", header = TRUE)
tabs <- eoffice::inoffice(filename = "mtcars.table.docx", header = TRUE)
2.4 保存为 html 格式文件
这个功能比较亮眼,tohtml
是基于 **plotly **来导出交互式的 html 的图片。
tohtml(p, filename = "mtcars.html", save = TRUE)
2.5 保存为其他格式图片
tofigure(ggplot(mtcars, aes(mpg, disp, color = factor(cyl))) + geom_point(),filename = "mtcars.pdf")
tofigure(ggplot(mtcars, aes(mpg, disp, color = factor(cyl))) + geom_point(),filename = "mtcars.eps")