R 下载有光泽的图形

R 下载有光泽的图形,r,shiny,R,Shiny,我试图下载我在Shiny中制作的图表,我发现了一篇关于这个主题的Stackoverflow帖子。然而,当我运行来自答案的代码时,所有这些看起来都很好,除了在“保存”图形之后我无法打开它们。我在保存它们的文件夹中看不到它们,当我试图从最近的文件中打开它们时,会弹出一个错误“找不到文件” 这是我正在使用的代码: library(shiny) library(ggplot2) runApp(list( #ui ui = fluidPage(downloadButton('downloadPlot'

我试图下载我在Shiny中制作的图表,我发现了一篇关于这个主题的Stackoverflow帖子。然而,当我运行来自答案的代码时,所有这些看起来都很好,除了在“保存”图形之后我无法打开它们。我在保存它们的文件夹中看不到它们,当我试图从最近的文件中打开它们时,会弹出一个错误“找不到文件”

这是我正在使用的代码:

library(shiny)
library(ggplot2)
runApp(list(
#ui
  ui = fluidPage(downloadButton('downloadPlot')),

#server
server = function(input, output) {
   datasetInput <- reactive({
switch(input$dataset,
       "rock" = rock,
       "pressure" = pressure,
       "cars" = cars)
 })

plotInput <- reactive({
  df <- datasetInput()
  p <-ggplot(df, aes_string(x=names(df)[1], y=names(df)[2])) +
  geom_point()
 })
output$downloadPlot <- downloadHandler(
filename = function() { paste(input$dataset, '.png', sep='') },
content = function(file) {
    ggsave(file, plot = plotInput(), device = "png")
}
)
}
))
库(闪亮)
图书馆(GG2)
runApp(列表(
#用户界面
ui=fluidPage(下载按钮(“下载绘图”),
#服务器
服务器=功能(输入、输出){

datasetInput我尝试用textInput复制您的代码,这对我来说很好

library(shiny)
library(ggplot2)
runApp(list(

#ui
 ui = fluidPage(downloadButton('downloadPlot'),
                textInput("filename", "Choose a dataset:")),

#server
 server = function(input, output) {
  datasetInput <- reactive({
   switch(input$filename,
          "rock" = rock,
          "pressure" = pressure,
          "cars" = cars)
  })

  plotInput <- reactive({
   df <- datasetInput()
   p <- ggplot(df, aes_string(x=names(df)[1], y=names(df)[2])) +
        geom_point()
  })
  output$downloadPlot <- downloadHandler(
   filename = function() { paste(input$filename, '.png', sep='') },
   content = function(file) {
     ggsave(file, plot = plotInput(), device = "png")
   }
  )
 }
))
库(闪亮)
图书馆(GG2)
runApp(列表(
#用户界面
ui=fluidPage(下载按钮(“下载绘图”),
textInput(“文件名”,“选择数据集:”),
#服务器
服务器=功能(输入、输出){

datasetInput我尝试用textInput复制您的代码,这对我来说很好

library(shiny)
library(ggplot2)
runApp(list(

#ui
 ui = fluidPage(downloadButton('downloadPlot'),
                textInput("filename", "Choose a dataset:")),

#server
 server = function(input, output) {
  datasetInput <- reactive({
   switch(input$filename,
          "rock" = rock,
          "pressure" = pressure,
          "cars" = cars)
  })

  plotInput <- reactive({
   df <- datasetInput()
   p <- ggplot(df, aes_string(x=names(df)[1], y=names(df)[2])) +
        geom_point()
  })
  output$downloadPlot <- downloadHandler(
   filename = function() { paste(input$filename, '.png', sep='') },
   content = function(file) {
     ggsave(file, plot = plotInput(), device = "png")
   }
  )
 }
))
库(闪亮)
图书馆(GG2)
runApp(列表(
#用户界面
ui=fluidPage(下载按钮(“下载绘图”),
textInput(“文件名”,“选择数据集:”),
#服务器
服务器=功能(输入、输出){

datasetInput或者,您可以使用
plotly
,它提供无需进一步配置的下载可能性(下载按钮位于图表的右上角):

库(闪亮)
图书馆(绘本)
runApp(列表(
#用户界面
ui=fluidPage(选择输入(“数据集”,“选择数据集:”,选择=c(“岩石”,“压力”,“汽车”)),
plotlyOutput(“plot”),
#服务器
服务器=功能(输入、输出){

datasetInput或者,您可以使用
plotly
,它提供无需进一步配置的下载可能性(下载按钮位于图表的右上角):

库(闪亮)
图书馆(绘本)
runApp(列表(
#用户界面
ui=fluidPage(选择输入(“数据集”,“选择数据集:”,选择=c(“岩石”,“压力”,“汽车”)),
plotlyOutput(“plot”),
#服务器
服务器=功能(输入、输出){

datasetInput当我在客户端定义downloadHandler中缺少的输入时,它对我来说一切正常:
selectInput(“数据集”,“选择数据集:”,choices=c(“岩石”,“压力”,“汽车”))
我将
input$dataset
更改为
input$filename
,这是我UI中的
textInput
,但它仍然不起作用。当我在客户端定义downloadHandler中缺少的输入时,它对我来说一切正常:
selectInput(“数据集”,“选择数据集:”,choices=c(“岩石”,“压力”,“cars”)
我将
input$dataset
更改为
input$filename
,这是我UI中的
textInput
,但它仍然不起作用