Изменение масштаба графика или таблицы при генерации точки питания

Я хочу иметь возможность выбирать размеры графиков, которые я вставляю в PowerPoint при их создании. Я понимаю, что могу просто сохранить их как отдельный файл, а затем вставить. Но я бы предпочел иметь возможность манипулировать ими, пока я вставляю их в слайд-колоду при создании. Будь то изменение размеров графика перед вставкой или изменение размеров ограничительной рамки слайда.

Я уже провел некоторое тестирование:

"use_loc_size = F" в ph_with, похоже, работает только с изображениями, насколько я могу судить по результатам проведенного мной тестирования.

Изменение качества пикселей несколько меняет масштаб, но метки и графики, кажется, изменятся совсем по-разному, если я коснусь этого (метки становятся больше, чем выше номер пикселя, в то время как график становится меньше, и наоборот, когда я уменьшаю номер пикселя)

Пример кода:

library(flextable)
library(rvg)
library(officer)
library(ggplot2)

path_out <- "."

# prep ggplot
p1 <- iris %>% 
  ggplot() +
  geom_point(aes(Sepal.Length,Petal.Length,color = Species), size = 3) +
  theme_minimal()

# prep editable graph (rvg)
p2 <- dml(ggobj = p1)

my_pres <- read_pptx() %>%
  #slide 1
  add_slide(layout = "Title and Content", master = "Office Theme") %>%
  ph_with(value = p1, location = ph_location_type("body", width = 2, height = 13)) %>%
  #slide 2
  add_slide() %>%
  ph_with(value = p2, location = ph_location_type("body"), width = 6, height = 6) %>%
  print(target = file.path(path_out,"example_v1.pptx"))

1 ответ

Решение

Если вы хотите определить размер из R без использования свойств заполнителя, вы можете использовать ph_location и укажите ширину, высоту и верхнее левое положение:

library(flextable)
library(rvg)
library(officer)
library(ggplot2)
library(magrittr)

path_out <- "."

# prep ggplot
p1 <- iris %>% 
  ggplot() +
  geom_point(aes(Sepal.Length,Petal.Length,color = Species), size = 3) +
  theme_minimal()

# prep editable graph (rvg)
p2 <- dml(ggobj = p1)

my_pres <- read_pptx() %>%
  #slide 1
  add_slide(layout = "Title and Content", master = "Office Theme") %>%
  ph_with(value = p1, location = ph_location("body", left = 1, top = 1, width = 5, height = 5)) %>%
  #slide 2
  add_slide() %>%
  ph_with(value = p2, location = ph_location("body", left = 1, top = 1, width = 5, height = 5)) %>%
  print(target = file.path(path_out,"example_v1.pptx"))

htt ps:https://stackru.com/images/ef55f54d67eb4e2c014a28a54623f78930c917e9.png

Другие вопросы по тегам