1
votes

I am trying now since days to get my Shiny App working so that when I move my mouse to certain points in the plot they are displayed in a table but unfortunately it is not working. I am not sure what I am doing wrong, can you help me?

border <- table$A < 0.03

ui <- fluidPage( mainPanel( plotOutput("Plot",click="plot_click"), tableOutput("HitSpots")
) )

server <- function(input, output){

output$Plot <- renderPlot({ 
    ggplot(table,aes(x=table$A, y=table$B), colour=border)) +
        geom_point() 
})

hit <- reactive({ nearPoints(table, input$plot_click) })

output$HitSpots <- renderTable({
   hit()
}

}

shinyApp(ui = ui, server = server)

1

1 Answers

2
votes

There are some problems with your parentheses. But the main problem is that you do ggplot(table, aes(x=table$A, y=table$B)), and then nearpoints is looking for columns named table$A and table$B. Do ggplot(table, aes(x=A, y=B)) instead.

library(shiny)
library(ggplot2)

table <- data.frame(
  A = c(1,2,3),
  B = c(3,2,1)
)

ui <- fluidPage(
  mainPanel(
    plotOutput("Plot", click="plot_click"), 
    tableOutput("HitSpots")
  )
)

server <- function(input, output){

  output$Plot <- renderPlot({ 
    ggplot(table, aes(x=A, y=B)) + geom_point() 
  })

  hit <- reactive({ nearPoints(table, input$plot_click) })

  output$HitSpots <- renderTable({
    hit()
  })

}

shinyApp(ui = ui, server = server)