如何使用R将饼图保存到ppt幻灯片中?

How to save Pie chart into ppt slides using R?

我想将我的 R 饼图保存到 pptx,所以我设法到达了代码的最后一步。

df <- data.frame(Type = c('x','y'),Count = c(177,41))
ggplt <- ggplot(df, aes(x = "", y = Count, fill = Type)) +
         geom_col(width = 1) +
         scale_fill_manual(values = c("red", "yellow")) +
         coord_polar("y") + 
         geom_text(aes(label = paste0("Count=",Count)), position = position_stack(vjust = 0.5))+
         labs(title = "Employees Count")

myppt <- read_pptx()
myppt <-  add_slide(myppt,layout="Two Content",master = "Office Theme")
myppt <- ph_with(myppt,type = "body",value = ggplt,location = ph_location_left()) 

而 运行 ph_with() 的最后一条语句我收到错误消息:

Error in match.arg(type) : 
  'arg' should be one of “windows”, “cairo”, “cairo-png” 

如果有人能告诉我我在哪里搞砸了,我将不胜感激!!

你应该看看 rmarkdown。有了它,您可以将您的文件或报告编织(转换)为 pptx 文件。要访问它,您可以在 rstudio 中单击新文件,然后按新的 markdown 文件。

问题是您在 ph_with 中使用了 type="body",但是没有 type 参数。因此,type 参数通过 ... 传递给 png() 函数,这导致了神秘错误。

这就是说,您可以通过删除 type="body":

来达到您想要的结果
library(officer)
library(ggplot2)

df <- data.frame(Type = c('x','y'),Count = c(177,41))
ggplt <- ggplot(df, aes(x = "", y = Count, fill = Type)) +
  geom_col(width = 1) +
  scale_fill_manual(values = c("red", "yellow")) +
  coord_polar("y") + 
  geom_text(aes(label = paste0("Count=",Count)), position = position_stack(vjust = 0.5))+
  labs(title = "Employees Count")

myppt <- read_pptx()
myppt <-  add_slide(myppt,layout="Two Content",master = "Office Theme")
myppt <- ph_with(myppt, value = ggplt, location = ph_location_left()) 

print(myppt, "foo.pptx")