我正在尝试使用ggplot2
软件包在幻灯片幻灯片中绘制officer
图。我可以做到这一点(直接在ppt中打印ggplot2
,但是由于我需要增加ggplot2
图的大小(对于ppt幻灯片),所以我知道{{1 }}图形取决于窗口的大小(在ggplot2
中)或您将其设置为好像要导出窗口一样,我正在寻找一种方法(1)以给定大小导出ggplot2图形(例如:RStudio
),(2)从ppt代码导入/读取:
height=5, width=8
library(officer)
library(devEMF)
library(magrittr)
library(ggplot2)
t <- "../example.pptx"
filename <- gg
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = filename, width = 6, height = 4, type = "body") %>%
print(target = t)
是ggplot2中的任何图(实际上并不重要)。 gg
是输出文件地址。
PowerPoint documents and graphics
PD:如果有一些我不知道但仍然找不到的包/命令,可以在其中编辑ggplot2的大小,则所有这些都是不必要的。
答案 0 :(得分:2)
我成功地将ggplot2
图另存为.png,然后将该文件调用到ph_with_img
中。有点回旋处,但可以。您还可以将图形另存为?tempfile
,然后另存为?unlink
,但我有点喜欢在图形文件夹中保存文件。
ggplot() +
(code for my ggplot)
ggsave("../thisplot.png", width = 6, height = 4)
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = "../thisplot.png", width = 6, height = 4, type = "body") %>%
print(target = t)
答案 1 :(得分:1)
我刚刚制作了一个基于export
的新软件包officer
,可以轻松地使一个人使用命令graph2ppt()
来执行此操作,并且可以很好地以矢量格式而不是位图导出在上面发布的其他答案中,例如
install.packages("export")
library(export)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species,
size = Petal.Width, alpha = I(0.7))
graph2ppt(file="plots.pptx", width=6, height=5)
答案 2 :(得分:1)
下面显示了如何使用officer 0.3.11
将ggplot对象创建和导出为矢量图形直接导出到powerpoint。关键是将ph_with
与location = ph_location
一起使用。这使您可以设置对象的位置和大小。
library(ggplot2)
library(dplyr, warn.conflicts = FALSE)
library(officer)
library(rvg)
t <- "example.pptx"
fig_gg <- ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point()
fig_vg <- dml(ggobj = fig_gg)
read_pptx() %>%
add_slide(layout = "Title Only", master = "Office Theme") %>%
ph_with(fig_vg, location = ph_location(left = .5, top = 1.3, height = 5, width = 5)) %>%
print(t)
由reprex package(v0.3.0)于2020-06-12创建