Рендеринг knitr pdf из Shiny Server - Server Side добавляет чрезмерные внешние поля для графиков - PullRequest
0 голосов
/ 03 октября 2018

У меня есть приложение, отображающее данные о государственном финансировании, и пользователь может создать отчет в формате PDF с данными.Это приложение Shiny разработано локально и развернуто на Shiny Server под управлением Ubuntu 16.04.

Код полностью работоспособен в том смысле, что код создает файл .pdf, однако в приложении на стороне сервера (выполняется точнотот же код), чрезмерные поля применяются к участкам.См. Скриншоты ниже;

МЕСТНЫЙ выход (желательно): Local

Выход SERVER (чрезмерные поля): Server

И сервер, и мой локальный компьютер для разработки работают под управлением knitr 1.20 и rmarkdown 1.10. Следовательно, я не вижу, как добавить это поле, учитывая, чтоЯ использую ненастроенные одинаковые версии двух соответствующих библиотек на моем локальном компьютере и сервере.

Ниже приведен соответствующий фрагмент кода файла .Rmd, полученный Shiny для рендеринга pdf-файла:

```{r, echo = FALSE, warning = FALSE, fig.width = 8, fig.height = 3, fig.align='center'}
# mat = params$mat

mat = data.frame(    
  Allocation = sample(100:200, size = 10, replace = TRUE),
  Type = sample(c('Private', 'SME', 'Property'), size = 10, replace = TRUE),
  Platform = sample(c('A', 'B', 'C'), size = 10, replace = TRUE)
)

p1 = plot_ly(data = mat, labels = ~Type, values = ~Allocation, type = 'pie', hole = 0.5, name = 'Type',
             textinfo = 'label+percent', textposition = 'outside', outsidetextfont = list(color = 'cornflowerblue', size = 6), 
             domain = list(x = c(0.05, 0.45), y = c(0.05, 0.95))) %>% layout(autoexpand = FALSE)

p2 = plot_ly(data = mat, labels = ~Platform, values = ~Allocation, type = 'pie', hole = 0.5, name = 'Platform',
             textinfo = 'label+percent', textposition = 'outside', outsidetextfont = list(color = 'cornflowerblue', size = 6),
             domain = list(x = c(0.55, 0.95), y = c(0.05, 0.95))) %>% layout(autoexpand = FALSE)

p = subplot(p1,p2) %>% layout(showlegend = FALSE, autoexpand = FALSE) %>% plotly::config(displayModeBar = F)

p

Я поиграл со стандартными функциями par (oma, mar)и аргументы plot_ly безрезультатны, но, несмотря на это, я сомневаюсь, что решение этой проблемы заключается в фрагменте кода, учитывая, что я наблюдаю желаемый результат локально.

Если бы кто-нибудь мог поделиться советом, это было бы очень признательно.JG

...