我下面有一个闪亮的应用程序,其中显示plotly()
标记和一个下载按钮以下载它。正常下载png和jpeg时,当我尝试下载svg文件时似乎出现了问题。
library(shiny)
library(plotly)
library(webshot)
ui <- fluidPage(
plotlyOutput("plot"),
uiOutput("down")
)
server <- function(input, output) {
# renderPlotly() also understands ggplot2 objects!
save<-reactive({
plot_ly(mtcars, x = ~mpg, y = ~wt)
})
output$plot <- renderPlotly({
save()
})
output$down<-renderUI({
#Download files with quotes or not depending on the quote=input$quotes which has value TRUE or FALSE.
output$downloadData <- downloadHandler(
filename = function() {
paste("test", "svg", sep = ".")
},
# This function should write data to a file given to it by
# the argument 'file'.
content = function(file) {
# Write to a file specified by the 'file' argument
export(save(), file=file)
}
)
downloadButton("downloadData", "Download",class = "butt1")
})
}
shinyApp(ui, server)
答案 0 :(得分:0)
我不确定您为什么首先将switch
放在其中,但对我来说看起来很不合适。
据我所知,switch
不是一个绘图函数或闪亮函数,而只是base-R函数。该功能只是帮助您在各种情况之间进行选择,作为一种帮助您避免不得不编写无尽的if-else if-else if -...语句的帮助。
它根据第一个参数从第二个参数到第n个参数进行选择,如下所示:
myvar <- sample(c('one', 'two', 'three'))
counted <- switch(myvar,
one='First',
two='Second',
three='Third',
'Error')
未命名的参数作为后备默认值存在。 在语法上给出默认值作为唯一值并没有错,但确实会破坏该值。基本上,您编写的是sep <- "jpeg"
,然后继续进行操作,而不使用sep。您可以通过将“ jpeg”更改为其他内容来进行检查,没有区别。
在下一步中,您只是尝试保存正确命名 的文件。 这导致导出尝试以扩展名识别的格式保存图。对于jpeg和png可以自动完成,而对于svg则不能自动完成。
有些帮助是用?plotly :: export编写的,它告诉您需要RSelenium软件包中的某些内容。不幸的是,我不能为您提供帮助,但是我认为您可以通过更多地搜索该软件包来找到答案。
但是交换机会误导您,至少不会按照您尝试使用的方式工作。