R语言中画的图怎么导出可编辑图表到PPTX?
最近遇到一个问题, R语言中画的图怎么导出到PPT可以便于其他同事后续编辑 ?
为解决这个问题,大体上有两种思路:
- 思路一是将数据按照PPT适宜的格式导出,再用PPT里自带的图表工具,通过编辑数据即可画图,缺点在于已经画好了图还得重新在PPT里画一遍,如果是一些比较复杂的图形,使用PPT未必能快速完成。
- 思路二是想办法将R的图对象直接导出为PPT可编辑的对象,这样会比较便捷
这篇文章主要讲讲思路二的具体实现方法,总体上是借助{officer}这个包【可直接跳到方法3】。如未安装请先:
install.packages("officer")
library(officer)
方法1(仅能插入图片到PPTX中):
library(ggplot2)
library(tidyverse)
# 用iris数据画个简单的散点图
g = ggplot(iris,
aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point(aes(color = Species))
# 这里使用officer包的相关函数将画图形成的ggplot对象赋值给doc
doc <- read_pptx() %>%
add_slide() %>%
ph_with(value = g, location = ph_location_fullsize())
# 导出pptx文件
print(doc, target = "iris.pptx")
找到刚刚生成的iris.pptx文件,发现居然只是个图片!看来这个方法只适用于想直接生成图片进PPT文件。
方法2(半可编辑):
借助rvg包
library(rvg)
# 用iris数据画个简单的散点图
g = ggplot(iris,
aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point(aes(color = Species))
# 将这个ggplot对象转化成可编辑的对象
editable_graph <- dml(ggobj = g)