在 powerpoint、excel 或 word 中列出可编辑的 ggplot

Make list of editable ggplots in powerpoint, excel, or word

提问人:confusedindividual 提问时间:11/16/2023 最后编辑:Dave2econfusedindividual 更新时间:11/16/2023 访问量:22

问:

我正在尝试创建一种方法来制作 R 中的绘图列表,这些绘图可以转换为可编辑格式的 powerpoint、excel 或 word。我可以使用下面的代码和 officer 包来做到这一点,但 R 中的图形看起来与 powerpoint 中的输出/可编辑图形非常不同。有没有办法解决这个问题?我对 powerpoint、excel 或 word 的输出感到满意。但是我希望所有图表都位于单独的幻灯片/工作表/页面上的一个文档中,具体取决于文件输出类型。

创建数据集

specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
value <- abs(rnorm(12 , 0 , 15))
df <- data.frame(specie,condition,value)

分组

set.seed(123)
df
p1 <- ggplot(df, aes(fill = condition, y = value, x = specie)) +
  scale_fill_manual(
    "Position",
    values = c("black", "white", "lightgrey")
  ) +
  scale_pattern_manual(
    "Position",
    values = c("none", "stripe", "none")
  ) +
  geom_col_pattern(
    aes(pattern = condition),
    position = "dodge",
    pattern_angle = 45,
    pattern_density = .1,
    pattern_spacing = .04,
    pattern_fill = "black",
    color = "black"
  ) +
  theme_classic() +
  theme(
    text = element_text(size = 16, family = "sans"),
    plot.title = element_text(hjust = 0.5, size = 20, face = "bold")
  ) 

###put all plots in list using list()
plot_list <- list(p1,p1,p1)

dput(plot_list)

plot_list_dml <- lapply(
  plot_list, \(x)
  dml(
    ggobj = x,
    bg = "white",
    editable = TRUE
  )
)

plot_list_dml

doc <- read_pptx()
for (plot in plot_list_dml) {
  doc <- add_slide(doc, "Title and Content", "Office Theme")
  
  doc <- ph_with(doc, plot, location = ph_location_fullsize())
}

fileout <- "vectorGraphics.pptx"

print(doc, target = fileout)

enter image description here

enter image description here

R Excel 幻灯片

评论

1赞 Jon Spring 11/16/2023
除了文本的相对大小等之外,由于两个输出的分辨率设置不同,还有什么不同吗?

答: 暂无答案