在给定大小的 PowerPoint 幻灯片中绘制 ggplot2 图 - R
Plotting a ggplot2 graph in a power point slide with a given size - R
我正在尝试使用 officer
包在幻灯片中绘制 ggplot2
图表。我实际上可以做到(直接在 ppt 中打印 ggplot2
),但是因为我需要增加 ggplot2
图的大小(对于 ppt 幻灯片),我明白 ggplot2
图表取决于 window 的大小(在 RStudio
中)或您将其设置为就像您正在导出它一样,我正在寻找一种方法来 (1) 导出 ggplot2 图表给定大小(例如:height=5, width=8
),(2)importing/reading来自ppt代码:
library(officer)
library(devEMF)
library(magrittr)
library(ggplot2)
t <- "../example.pptx"
filename <- gg
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = filename, width = 6, height = 4, type = "body") %>%
print(target = t)
gg
是 ggplot2 中的任何图(实际上并不重要)。 t
为输出文件地址。
PowerPoint documents and graphics
PD:如果有一些 package/command 我不知道而且我仍然找不到,我可以在哪里编辑 ggplot2 的大小,那么所有这些都是不必要的。
我成功地将 ggplot2
图形保存为 .png,然后将该文件调用到 ph_with_img
。有点迂回,但它的工作原理。您也可以将图表保存为 ?tempfile
,然后再保存为 ?unlink
,但我有点喜欢有一个我的图表文件夹。
ggplot() +
(code for my ggplot)
ggsave("../thisplot.png", width = 6, height = 4)
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = "../thisplot.png", width = 6, height = 4, type = "body") %>%
print(target = t)
我刚刚在 officer
的基础上制作了一个新包 export
,它可以很容易地让人们使用命令 graph2ppt()
来做到这一点,并且可以很好地以矢量格式导出,而不是到上面发布的其他答案中的位图,例如
install.packages("export")
library(export)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species,
size = Petal.Width, alpha = I(0.7))
graph2ppt(file="plots.pptx", width=6, height=5)
下面展示了如何使用 officer 0.3.11
创建一个 ggplot 对象并将其作为矢量图直接导出到 powerpoint。关键是使用 ph_with
和 location = ph_location
。这允许您设置对象的位置和大小。
library(ggplot2)
library(dplyr, warn.conflicts = FALSE)
library(officer)
library(rvg)
t <- "example.pptx"
fig_gg <- ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point()
fig_vg <- dml(ggobj = fig_gg)
read_pptx() %>%
add_slide(layout = "Title Only", master = "Office Theme") %>%
ph_with(fig_vg, location = ph_location(left = .5, top = 1.3, height = 5, width = 5)) %>%
print(t)
由 reprex package (v0.3.0)
于 2020 年 6 月 12 日创建
我正在尝试使用 officer
包在幻灯片中绘制 ggplot2
图表。我实际上可以做到(直接在 ppt 中打印 ggplot2
),但是因为我需要增加 ggplot2
图的大小(对于 ppt 幻灯片),我明白 ggplot2
图表取决于 window 的大小(在 RStudio
中)或您将其设置为就像您正在导出它一样,我正在寻找一种方法来 (1) 导出 ggplot2 图表给定大小(例如:height=5, width=8
),(2)importing/reading来自ppt代码:
library(officer)
library(devEMF)
library(magrittr)
library(ggplot2)
t <- "../example.pptx"
filename <- gg
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = filename, width = 6, height = 4, type = "body") %>%
print(target = t)
gg
是 ggplot2 中的任何图(实际上并不重要)。 t
为输出文件地址。
PowerPoint documents and graphics
PD:如果有一些 package/command 我不知道而且我仍然找不到,我可以在哪里编辑 ggplot2 的大小,那么所有这些都是不必要的。
我成功地将 ggplot2
图形保存为 .png,然后将该文件调用到 ph_with_img
。有点迂回,但它的工作原理。您也可以将图表保存为 ?tempfile
,然后再保存为 ?unlink
,但我有点喜欢有一个我的图表文件夹。
ggplot() +
(code for my ggplot)
ggsave("../thisplot.png", width = 6, height = 4)
read_pptx() %>%
add_slide(layout = "Title and Content", master = "Office Theme") %>%
ph_with_img(src = "../thisplot.png", width = 6, height = 4, type = "body") %>%
print(target = t)
我刚刚在 officer
的基础上制作了一个新包 export
,它可以很容易地让人们使用命令 graph2ppt()
来做到这一点,并且可以很好地以矢量格式导出,而不是到上面发布的其他答案中的位图,例如
install.packages("export")
library(export)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species,
size = Petal.Width, alpha = I(0.7))
graph2ppt(file="plots.pptx", width=6, height=5)
下面展示了如何使用 officer 0.3.11
创建一个 ggplot 对象并将其作为矢量图直接导出到 powerpoint。关键是使用 ph_with
和 location = ph_location
。这允许您设置对象的位置和大小。
library(ggplot2)
library(dplyr, warn.conflicts = FALSE)
library(officer)
library(rvg)
t <- "example.pptx"
fig_gg <- ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point()
fig_vg <- dml(ggobj = fig_gg)
read_pptx() %>%
add_slide(layout = "Title Only", master = "Office Theme") %>%
ph_with(fig_vg, location = ph_location(left = .5, top = 1.3, height = 5, width = 5)) %>%
print(t)
由 reprex package (v0.3.0)
于 2020 年 6 月 12 日创建