将文件上传到闪亮的应用后生成图

时间:2018-12-27 21:12:59

标签: r plot shiny

我想要一个简单的应用程序,该应用程序在读取csv文件后会生成绘图,为此,我正在关注文档,但是我对如何将新文件与绘图连接感到迷惑。我现在的预期输出是这样的:

enter image description here

这是我用来绘制情节的代码:

  output$plot1 <- renderPlot({
    ggplot(df, aes(x=LotArea, y=SalePrice)) + geom_point()
  })

  output$info <- renderPrint({
    brushedPoints(df, input$LotArea, allRows = TRUE)
  })

但是现在我只是在应用程序的开头读取文件。

df = read.csv("data/house_prices.csv")
df = select(df, "SalePrice","LotArea")

到目前为止,我还没有找到如何将此图连接到上载的文件,因此,每次上传文件时,我都应该有一个不同的图。 :

column(3,
      fileInput("file1", "Choose CSV File",
    accept = c(
      "text/csv",
      "text/comma-separated-values,text/plain",
      ".csv")
    ))

这是完整的代码:

library(shiny)
library(dplyr)




df = read.csv("data/house_prices.csv")
df = select(df, "SalePrice","LotArea")




ui <- fluidPage(
  fluidRow(

    column(3,
          fileInput("file1", "Choose CSV File",
        accept = c(
          "text/csv",
          "text/comma-separated-values,text/plain",
          ".csv")
        )),
    column(6,
      plotOutput("plot1", click = "plot_brush")
      ),
      mainPanel(
      tableOutput("contents")

      )
    )
)

server <- function(input, output) {
  options(width = 100) # Increase text width for printing table
  output$plot1 <- renderPlot({
    ggplot(df, aes(x=LotArea, y=SalePrice)) + geom_point()
  })

  output$info <- renderPrint({
    brushedPoints(df, input$LotArea, allRows = TRUE)
  })
    output$contents <- renderTable({

    inFile <- input$file1

    if (is.null(inFile))
      return(NULL)

    read.csv(inFile$datapath)


  })

}

shinyApp(ui, server)

0 个答案:

没有答案