Для моего приложения мне нужно, чтобы пользователь щелкнул область на графике, а затем график отвечает на этот щелчок и показывает новый график, связанный с этим входным щелчком.
Тем не менее, в настоящее время он работает, но новый график отображается только в течение 3 секунд, а затем возвращается к исходному графику. Я нашел похожий пример здесь . Этот график обновляется на основе списка реактивных значений, а затем рисует те новые точки, которые выбрал пользователь. Я думаю, что если я найду способ изменить его так, чтобы он рисовал новый график сразу после события щелчка, он должен работать, но застрял на этой части.
Так что в идеале приведенный ниже пример добавит новую точку сразу после нажатия кнопки beind. В моем случае мне нужно будет отображать новый график до тех пор, пока не будет нажата новая область графика.
Пример по ссылке
library(shiny)
ui <- basicPage(
plotOutput("plot1", click = "plot_click"),
verbatimTextOutput("info"),
actionButton("updateplot", "Update Plot:")
)
server <- function(input, output) {
val <- reactiveValues(clickx = NULL, clicky = NULL)
observe({
input$plot_click
isolate({
val$clickx = c(val$clickx, input$plot_click$x)
val$clicky = c(val$clicky, input$plot_click$y)
})
}) #adding clicks to list
output$plot1 <- renderPlot({
plot(mtcars$wt, mtcars$mpg)
input$updateplot
isolate({
points(val$clickx, val$clicky)
})
})
output$info <- renderText({
paste0("x = ", val$clickx, ", y = ",val$clicky, "\n")
})
}
shinyApp(ui, server)