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

Posted

技术标签:

【中文标题】如何使用 R 将饼图保存到 ppt 幻灯片中?【英文标题】:How to save Pie chart into ppt slides using R? 【发布时间】:2022-01-19 10:48:00 【问题描述】:

我想将我的 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” 

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

虽然这是一个建议,但它并不是对 OP 问题的真正答案。【参考方案2】:

问题是您在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")

【讨论】:

哦!我明白了.. 谢谢@stefan。

以上是关于如何使用 R 将饼图保存到 ppt 幻灯片中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在饼图上显示文字

PPT技巧操作:PPT如何制作三维立体图形

幻灯片如何自动更新日期与时间

设计了一张PPT,如何在创建新的PPT页面时,使其自动显示其背景图案?

如何把PPT内容导入微信公众号?

PPT里的立体饼状图效果怎么做 饼状已做好,体现不出立体效果