Я хотел бы создать участок в Shiny, который пользователь может загрузить как pdf, используя специальный шрифт, указанный в качестве пользовательского ввода.Как использовать разные шрифты в R Shiny plot
Конкретно, я хотел бы использовать функцию pdf, такую как pdf("plot.pdf", width = 5, height = 5, family = font.family)
, где значение font.family
указано пользователем.
Вот простой пример: Если я запустил пример на своей машине, он отлично работает. Однако, когда он размещен на блестящих серверах RStudio, я получаю сообщение об ошибке, указывающее, что указанное семейство шрифтов не может быть найдено. Я думаю, проблема в том, что шрифты, которые я хочу, недоступны на блестящих серверах RStudio, но есть ли способ включить их?
server.R
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
plot(1, xlim = c(0, 1), ylim = c(0, 1))
text(.5, .5, "Custom Font!!"
})
output$downloadPlot <- downloadHandler(
filename = function() {paste('CustomFont.pdf')},
content = function(file){
font.family <- input$font.family
pdf(file, width = 11, height= 8.5, family = font.family)
plot(1, xlim = c(0, 1), ylim = c(0, 1))
text(.5, .5, fonts(), cex = 10)
dev.off()
}, contentType = "image/pdf"
)
})
ui.R
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("font.family", "Choose Font",
choices = c("Helvetica Neue", "Times New Roman", "Arial")
),
downloadButton("downloadPlot", "Download Plot as PDF")
),
# Show a plot of the plot
mainPanel(
plotOutput("distPlot", width = "800px", height = "800px")
))))
Что код, который вы запускаете на локальном компьютере, что позволяет выбрать пользовательский шрифт для сюжета? Используете ли вы одну и ту же операционную систему на своей локальной машине и где вы размещаете приложение Shiny? – MrFlick
сторона примечание: я думаю, вы должны взглянуть на 'pdfFonts', чтобы получить представление о наборе шрифтов, используемых' pdf'. Возможно, вы можете выполнить 'pdfFonts()' на сервере и сравнить то, что у вас есть локально. – agstudy
@agstudy: Спасибо за подсказку pdfFonts()! Это позволяет мне видеть, какие шрифты доступны на сервере. Проблема в том, что есть некоторые шрифты (например, Helvetica Neue), которые я бы хотел использовать, но недоступны на сервере. Вы знаете, могу ли я загружать шрифты на сервер Shiny? –