我正在使用officer
和rvg
软件包将R中的图表作为可编辑矢量图形从MS PowerPoint中获取。可重复的例子如下。
我正在寻找一种使用python实现等效解决方案的方法,最好使用matplotlib
。关键部分不是从IDE创建幻灯片,而是可编辑的矢量图形部分,即绘图最终应该在PowerPoint中作为由一系列简单的powerpoint几何图形组成的分组对象,如线条,正方形和文本字段。
R示例:
library(tidyverse)
library(officer)
library(rvg)
# Get some data and make a plot
ggp <- diamonds %>%
group_by(clarity) %>%
summarise(price = mean(price)) %>%
ggplot(aes(x = clarity, y = price, fill = clarity)) +
geom_bar(stat = 'identity', colour = 'black')
# Create a new powerpoint document
doc <- read_pptx()
doc <- add_slide(doc, 'Title and Content', 'Office Theme')
# Add the plot
doc <- ph_with_vg(doc, ggobj = ggp, type = 'body')
# Write the document to a file
print(doc, target = 'plots.pptx')
生成的图表完全可以编辑:
答案 0 :(得分:1)
自2019年版MS Office以来,您可以将svg
文件添加为图像,然后取消分组以使其可编辑。请参见此MS page上的“将SVG图像转换为Office形状”。以我个人的经验,这既不稳定又不完整。
另一种方法虽然更不完善,但仍然更稳定和完整 ,它是在Powerpoint中作为emf
文件导入的,这也是矢量格式。 matplotlib的旧版本可以导出为这种格式。对于较新的版本,我导出为svg
,然后使用inkscape --file "input.svg" --export-emf "output.emf"
转换为emf
,然后将其加载到powerpoint中。如果一切正常,再次取消对对象的分组即可进行编辑。