我的目标很简单:我想在 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')
非常感谢您对解决此问题的任何见解。
谢谢