заговор не генерирует вывод в R блестящей консоли - PullRequest
0 голосов
/ 15 октября 2018

Я создал следующий фрейм данных и блестящее приложение

 # Import packages
 library(readxl)
 require(ggplot2)
 require(janitor)
 require(lubridate)
 require(shiny)
 require(plotly)
 require(reshape2)

Функция из переполнения стека

   #generate date randomly
   rdate <- function(x,
              min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
              max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
              sort = TRUE) {

     dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace 
     = TRUE)
    if (sort == TRUE) {
     sort(dates)
    } else {
dates
  }

 }

Далее мы создадим фрейм данных

  DF<-as.data.frame("Date"<-rdate(100))
  DF$variable<-LETTERS[seq( from = 1, to = 10 )]

  DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))

    # subset the dataframe
  DF<-DF[,c(2:4)]
  DF

    # Write to csv
    write.csv(DF, file = "Book1.csv", col.names = F)

Далее мысоздать блестящее приложение

    # UI creation

    UI<-fluidPage(fileInput("file", "Browse",
                    accept = c("text/csv",
                               "text/comma-separated-values,text/plain",
                               ".csv")),
          #selectInput(inputId = "Speciesname", label = "Name",choices = 
          #NULL,selected = NULL),
          plotOutput(outputId = "plot1" ))


    # Server creation
    Server<-function(input, output, session){
    output$plot1<-renderPlot({

   infile <- input$file
   if (is.null(infile)) {
  # User has not uploaded a file yet
  return(NULL)
   }

     Book1 <-  read.csv(input$file$datapath, stringsAsFactors = F)


     Book1<-data.frame(Book1)



     Book2<-remove_empty_rows(Book1)


     ggplot(DF, aes(x = Date, y = Value, colour = variable)) + 
      geom_line() + 
      ylab(label="Number of Sales") + 
      xlab("Sales Week")

     }


   )


  }
  shinyApp(UI, Server)

В этом приложении график генерируется в выходной, названный Shiny UI.

Когда я делаю следующее изменение на сервере, график создается не в блестящем пользовательском интерфейсе, а в консоли студии r

     Book2<-remove_empty_rows(Book1)


     P<- ggplot(DF, aes(x = Date, y = Value, colour = variable)) + 
      geom_line() + 
      ylab(label="Number of Sales") + 
      xlab("Sales Week")
      return(ggplotly(p))

Я не могу получить график в блестящемКонсоль пользовательского интерфейса.Я прошу кого-то, чтобы помочь мне.Я не могу найти ошибку

1 Ответ

0 голосов
/ 15 октября 2018

Если вы используете сюжет в блестящих приложениях, plotOutput() и renderPlot() не будут работать.Вам нужно иметь plotlyOutput() и renderPlotly().Код ниже должен работать.Я вынул fileInput и read.csv, чтобы сделать его немного проще.

library(shiny)
library(plotly)

rdate <- function(x,
                  min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
                  max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
                  sort = TRUE) {

    dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace 
                    = TRUE)
    if (sort == TRUE) {
        sort(dates)
    } else {
        dates
    }

}

UI<-fluidPage(
              plotlyOutput(outputId = "plot1" ))

# Define server logic required to draw a histogram
server <- function(input, output) {

   output$plot1 <- renderPlotly({
      # generate bins based on input$bins from ui.R
       DF<-data.frame(Date = rdate(100))
       DF$variable<-LETTERS[seq( from = 1, to = 10 )]

       DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))

       g <- ggplot(DF, aes(x = Date, y = Value, colour = variable)) + 
           geom_line() + 
           ylab(label="Number of Sales") + 
           xlab("Sales Week") 

       ggplotly(g)

   })
}

# Run the application 
shinyApp(ui = UI, server = server)
...