Shiny: Solicitud: plotOutput: una forma de diferenciar entre clic y pincel

Creado en 7 sept. 2015  ·  5Comentarios  ·  Fuente: rstudio/shiny

_Publicado originalmente en el brillante grupo de Google _

Si quiero tener un gráfico en mi aplicación brillante en el que el usuario pueda hacer clic o elegir ciertas regiones, usaré los argumentos click y brush de plotOutput . Sin embargo, cuando se inicia un pincel, también se llama al controlador de clics. En algunos casos, puede ser útil saber cuándo se hace un clic y cuándo se hace un pincel, pero si un clic es parte de un pincel, entonces quiero ignorarlo.

Ejemplo: en la siguiente aplicación, si solo se cepilla (haga clic en algunos
k en algún lugar y arrastre el mouse), obtendrá un mensaje de "clic" así como un mensaje de "pincel". Solo quiero recibir el mensaje "pincel" en ese caso.

library(shiny)
library(ggplot2)
runApp(shinyApp(
  ui = fluidPage(
    plotOutput("plot", click = "click", brush = "brush")
  ),
  server = function(input, output, session) {
    output$plot <- renderPlot({
      ggplot(mtcars, aes(wt, mpg)) + geom_point()
    })
    observeEvent(input$click, {
      cat("clicked\n")
    })
    observeEvent(input$brush, {
      cat("brushed\n")
    })
  }
))

Noté que el evento de clic se activa al presionar el mouse. Si está de acuerdo con mi comportamiento propuesto de no disparar un clic cuando se hace un pincel, tal vez una posible solución sería cambiar el disparador para que esté en mouse up y, cuando suceda, comprobar si se hizo un pincel.

Advanced Medium Medium Type

Comentario más útil

Votando por este. Esto es una molestia. Gracias

Todos 5 comentarios

Parece una buena idea. Existe algún código que utiliza el tiempo para distinguir entre clics y dobles clics, y también se podría usar algo similar para esto.

Hola @ wch , te acabo de preguntar en el devcon Shiny si esto sigue siendo un problema. Lo acabo de probar, y un clic regular todavía se registra en el momento en que coloco el mouse en la trama. Brillante v0.13.0

Votando por este. Esto es una molestia. Gracias

+1

Sigue siendo una cosa; reproducido con Shiny 1.3.2.

¿Fue útil esta página
0 / 5 - 0 calificaciones