0

我的目标很简单:我想在 ggplot2 中创建一个标题,其中有些单词是粗体的,有些不是,然后使用 OfficeR 将其添加到 Powerpoint 对象并打印所述对象。

然而,每次我尝试这样做时,PowerPoint 标题中的每个单词都是它自己的文本框。这很好,只是一个词总是错位。我定期运行数千张这样的图表,因此手动调整是不切实际的。

我尝试过使用 ggtitle、element_markdown、atop、bquote 等。没有解决方案有效。请注意,我还尝试了使用其他降价样式的其他方法。

这是代码示例(为图表的外观道歉,这在这里并不重要)

 library(ggtext); library(ggplot2); library(officer)
 p <- ggplot2::ggplot() + 
  geom_line(data = mtcars, 
            aes(x = mpg, y = cyl, color = am, group = am),size = 2 ) + 
  #Standard Theme Elements
  theme(plot.title = element_markdown(size = 16, hjust = -0, face = 'bold',  family = 'Calibri'))+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"),
        legend.key.height = unit(0.25, "cm"),
        legend.position = c(0.85,1),
        legend.key = element_blank(),
        plot.title.position = "plot",
        plot.subtitle = element_text(size = 10.5, hjust = 0, family = 'Calibri', margin=margin(0,0,25,0)),
        axis.title.x=element_blank(), axis.title.y=element_blank(),
        axis.text.x = element_text(hjust=0.5),
        text=element_text(size=11),
  ) + 
  #Title
  labs(title =paste("<b>Bold Title</b> <i>not bold part</i>")
       ,subtitle = 'Some Subtitle')  

p_dml <- rvg::dml(ggobj = p)
pptx_test <- officer::read_pptx()

pptx_test <- pptx_test %>%
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  officer::ph_with(p_dml, ph_location(left = 0, top = 1, width = 5, height = 3))

print(pptx_test,'~/Desktop/test.pptx')

非常感谢您对解决此问题的任何见解。

谢谢

4

0 回答 0