Построение графика ggplot2 на слайде Power Point с заданным размером - R - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь построить график ggplot2 на слайде в формате Power Point с пакетом officer. Я могу сделать это на самом деле (печать ggplot2 непосредственно в ppt), но, поскольку мне нужно увеличить размер графика ggplot2 (для слайда ppt), я понял, что графики ggplot2 зависят от размер окна (в RStudio) или что бы вы ни установили, как если бы вы его экспортировали, я ищу способ (1) экспортировать граф ggplot2 с заданным размером (например: height=5, width=8) , (2) импорт / чтение из кода 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 - адрес выходного файла.

ph_with_img

Документы и графика PowerPoint

PD: Все это не нужно, если есть какой-то пакет / команда, которую я не знаю, и до сих пор не могу найти, где я могу отредактировать размер ggplot2.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я только что создал новый пакет export, построенный поверх officer, который легко позволяет сделать это с помощью команды 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) 
0 голосов
/ 17 января 2019

Мне удалось сначала сохранить график 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)
...