Создать график после загрузки файла в блестящие приложения - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу простое приложение, которое генерирует график после прочтения файла 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)
...