来自python的PowerPoint中的可编辑图:相当于官员和rvg

时间:2018-02-23 08:56:57

标签: python r plot graphics powerpoint

我正在使用officerrvg软件包将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')

生成的图表完全可以编辑:

enter image description here

1 个答案:

答案 0 :(得分:1)

自2019年版MS Office以来,您可以将svg文件添加为图像,然后取消分组以使其可编辑。请参见此MS page上的“将SVG图像转换为Office形状”。以我个人的经验,这既不稳定又不完整

另一种方法虽然更不完善,但仍然更稳定和完整 ,它是在Powerpoint中作为emf文件导入的,这也是矢量格式。 matplotlib的旧版本可以导出为这种格式。对于较新的版本,我导出为svg,然后使用inkscape --file "input.svg" --export-emf "output.emf"转换为emf,然后将其加载到powerpoint中。如果一切正常,再次取消对对象的分组即可进行编辑。