2016-06-26 5 views
0

Я начал использовать пакет Shiny, и у меня возникли проблемы с реактивной функцией. ссылки на файл CSV - here Реактивная функция не работает в следующем коде:Реактивная функция блестящей R не работает

library(shiny) 
    library(ggplot2) 
    library(jpeg) 
    library(grid) 
    library(DT) 

    ui<-shinyUI(fluidPage 
     (

     titlePanel("Rapid Interpretation of Eye Movements"), 
     tags$style("body {background-color: #ffffcc;}"), 
     fileInput('file1', 'Choose CSV File', 
        accept=c('text/csv', 
          'text/comma-separated-values,text/plain', 
          '.csv')), 
     tags$hr(), 
     fluidRow(
      column(width = 10, class = "well", 
       h4("Left plot controls right plot"), 
       fluidRow(
        column(width = 10,plotOutput("plot", height = 500, brush = brushOpts(id = "plot_brush", resetOnNew = TRUE))) 
       ))) 
     )) 

    server<- shinyServer(function(input,output,session){ 

    filedata <- reactive({ 
     infile <- input$file1 
     if (is.null(infile)) { 
     # User has not uploaded a file yet 
     return(NULL) 
     } 
     read.csv(infile$datapath) 
    }) 

    output$plot <-renderPlot({ 

     bg <- rasterGrob(readJPEG(
     paste0("C:/Users/tyaacov/Downloads/shinyProject/pics/1.jpg")), interpolate=TRUE) 

     fixationdata <- filedata() 

     df <- data.frame(fixationdata$HorzPos, 
         fixationdata$VertPos, 
         d = densCols(fixationdata$HorzPos, 
            fixationdata$VertPos, 
            colramp = colorRampPalette(rev(rainbow(10, end = 4/6))))) 



     ggplot(df) + annotation_custom(bg, xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf) + 
     geom_point(aes(fixationdata$HorzPos, 
         fixationdata$VertPos, col = d), size = 1) + 
     scale_color_identity() + theme_bw() + scale_x_continuous(name="",limits = c(0, 920)) + theme(axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank()) + scale_y_continuous(name="",limits = c(0, 255)) 
    }) 

    }) 

    shinyApp(ui=ui,server = server) 

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

+0

Добро пожаловать в StackOverflow. Есть ли файл пользовательского интерфейса, который должен работать с этим, чтобы я мог его запустить? –

+0

да .. добавил код пользовательского интерфейса к вопросу .. Thaks .. –

+0

Отлично, что помогает, спасибо. Вы также получаете ошибку о ', width = '8%'', которая является недопустимой? Есть ли какие-либо другие пакеты, которые вы загрузили? Я думаю, что вы загрузили «растр», «jpeg» и «сетка», это правильно? Можете ли вы приложить файл 'C:/Users/tyaacov/Downloads/shinyProject/pics/1.jpg'? –

ответ

0
library(shiny) 
library(ggplot2) 
library(jpeg) 
library(grid) 
library(DT) 

ui<-shinyUI(fluidPage 
      (

      titlePanel("Rapid Interpretation of Eye Movements"), 
      tags$style("body {background-color: #ffffcc;}"), 
      fileInput('file1', 'Choose CSV File', 
         accept=c('text/csv', 
           'text/comma-separated-values,text/plain', 
           '.csv')), 
      tags$hr(), 
      fluidRow(
       column(width = 10, class = "well", 
        h4("Left plot controls right plot"), 
        fluidRow(
         column(width = 10,plotOutput("plot", height = 500, brush = brushOpts(id = "plot_brush", resetOnNew = TRUE))) 
        ))) 
      )) 

server<- shinyServer(function(input,output,session){ 

    filedata <- reactive({ 
    infile <- input$file1 
    if (is.null(infile)) { 
     # User has not uploaded a file yet 
     return(NULL) 
    } 
    read.csv(infile$datapath) 
    }) 


    output$plot <-renderPlot({ 

    if (is.null(input$file1)) return() 
    #if (input$action==0) return() 
    #isolate({ 

    library(ggplot2) 

    fixationdata <- filedata() 

    df <- data.frame(fixationdata$HorzPos, 
        fixationdata$VertPos, 
        d = densCols(fixationdata$HorzPos, 
            fixationdata$VertPos, 
            colramp = colorRampPalette(rev(rainbow(10, end = 4/6))))) 
    ggplot(df) + 
     geom_point(aes(fixationdata$HorzPos, 
        fixationdata$VertPos, col = d), size = 1) + 
     scale_color_identity() + theme_bw() + scale_x_continuous(name="",limits = c(0, 920)) + theme(axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank()) + scale_y_continuous(name="",limits = c(0, 255)) 
    #}) 

    }) 

}) 

shinyApp(ui=ui,server = server) 
+0

спасибо за ваш ответ. он по-прежнему показывает ошибку - Ошибка в eval: object 'fixationdata' не найден –

+0

Я не видел эту ошибку, вы пробовали обновление R и библиотеки? – DemetriusRPaula

Смежные вопросы