У меня есть приложение, отображающее данные о государственном финансировании, и пользователь может создать отчет в формате PDF с данными.Это приложение Shiny разработано локально и развернуто на Shiny Server под управлением Ubuntu 16.04.
Код полностью работоспособен в том смысле, что код создает файл .pdf, однако в приложении на стороне сервера (выполняется точнотот же код), чрезмерные поля применяются к участкам.См. Скриншоты ниже;
МЕСТНЫЙ выход (желательно):
Выход 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