Как увеличить разрешение ggplots при экспорте с помощью Officer R

Я хочу экспортировать диаграммы в формат PPT и использую для этого пакет Officer. Однако разрешение диаграмм по умолчанию низкое, и я хотел бы это изменить. В настоящее время я использую следующий вызов

    ph_with_gg(p1,type = "chart",res = 1200)

где p1 — объект ggplot. При запуске я получаю следующую ошибку:

    Error in png(filename = file, width = width, height = height, units = 
"in",  : 
  formal argument "res" matched by multiple actual arguments

Был бы очень признателен за помощь в этом


person Nishant Kachawa    schedule 12.03.2018    source источник


Ответы (2)


Вместо использования png для графиков с высоким разрешением в PPT следует использовать векторную графику.

См. раздел расширения:

Векторная графика с пакетом rvg

Пакет rvg предоставляет API для создания красивой векторной графики, которую можно встраивать в документы PowerPoint или книги Excel с помощью officer.

Этот пакет предоставляет функции dml() и ph_with(), соответствующие методу экспорта ggplots в .pptx в виде векторной графики.

Пример:

library(ggplot2)
library(officer)
library(rvg)
library(magrittr)
data(iris)

read_pptx() %>%
  add_slide(layout='Title and Content',master='Office Theme') %>%
  ph_with('Iris Sepal Dimensions', location = ph_location_type(type="title")) %>%
  ph_with(dml( ggobj=
                 ggplot(iris, aes(x=Sepal.Length,y=Sepal.Width,col=Species)) +
                 geom_point()), location = ph_location_type(type="body")) %>%
  print('iris_presentation.pptx')

В качестве дополнительного преимущества вы сможете редактировать диаграммы в PowerPoint. Например, если вы решили использовать заглавные буквы в названиях трех видов, вы можете просто отредактировать диаграмму вместо редактирования данных и повторного создания слайдов. (Вы также можете сделать графики нередактируемыми, но редактируемые по умолчанию.)

person C8H10N4O2    schedule 12.03.2018
comment
Спасибо, что указали на этот пакет. У него есть функция ph_with_vg, которая решает проблему. Большое спасибо - person Nishant Kachawa; 13.03.2018

Важно ли, чтобы сюжет сохранялся в презентацию в коде?

В противном случае использование:

ggsave(filename = file, p1, width = width, height = height, dpi = dpi)

даст вам png любого разрешения, которое вам нужно ..

(при условии, что имя файла заканчивается на .png и вы установили соответствующие значения ширины, высоты и dpi)

person frostell    schedule 12.03.2018
comment
Привет. Как узнать, какое значение подходит для установки dpi? - person Jules_ps; 18.08.2020