【发布时间】:2018-08-03 07:11:57
【问题描述】:
我正在使用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')
生成的图表是完全可编辑的:
【问题讨论】:
-
我不知道任何可以实现这一点的python包。但是为什么你更喜欢由 ppt 原语制成的假图表而不是真正的 ppt 图表呢?
-
“真实” ppt 图表仅提供有限范围的可能图表,并且不适用于大量数据。我更喜欢在 R 或 python 中创建我的图,然后将它们导出给客户。但是,客户(业务利益相关者、项目经理或客户)通常希望事后进行一些小的更改(更改颜色或字体)。这意味着重新加载数据可能既耗时又昂贵。在 powerpoint 中“事后”修改绘图的能力可以解决这个问题。
-
使用python-pptx.readthedocs.io/en/latest/user/charts.html之类的东西你有以上所有的优点:你可以在python中创建绘图然后导出到PPT,导出后你可以改变颜色或字体。唯一的区别是,您的幻灯片中有一个实际的 Powerpoint 图表,而不是假的、基于图元的图表。
-
谢谢@r4ch。这对某些用户来说是一个解决方案,但对我来说,标准的电源点数字并不能满足我的大多数用例。很高兴在这里有链接!
-
看起来这个函数现在已经失效了。 @JanLauGe 你可以用一个可重现的例子来更新。 > doc
标签: python r plot graphics powerpoint