У меня есть фрейм данных ниже:
Name<-c("John","Bob","Jack")
Number<-c(3,3,5)
NN<-data.frame(Name,Number)
И простое блестящее приложение, которое создает из него сюжетную гистограмму.Моя цель - щелкнуть по полосе гистограммы и отобразить Name
в таблице данных, соответствующей этой полосе.Например, если я нажму на первую полосу, которая равна 3, я возьму таблицу с именами Джона и Боба.
library(plotly)
library(shiny)
library(DT)
ui <- fluidPage(
mainPanel(
plotlyOutput("heat")
),
DT::dataTableOutput('tbl4')
)
server <- function(input, output, session) {
output$heat <- renderPlotly({
p <- plot_ly(x = NN$Number, type = "histogram")
})
output$tbl4 <- renderDataTable({
s <- event_data("plotly_click")
if (length(s) == 0) {
"Click on a bar in the histogram to see its values"
} else {
NN[ which(NN$Number==as.numeric(s[2])), 1]
}
})
}
shinyApp(ui, server)