eoffice
来告诉你不会用
AI
和
PS
没有关系,直接用
ppt
就可以了。
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")
参考资料:
1.eoffice github
2.呈现数据交给R,修图只会PPT!