You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在R Shiny的Plotly图表中禁用点击自动缩放功能

Fixing Unwanted Plotly Zoom on Mobile Click (and Desktop Double-Click) in R Shiny

Hey there! I’ve dealt with this exact quirk in Plotly + Shiny before—super frustrating when mobile users accidentally trigger zoom with a single tap. Let’s get this fixed quickly.

The Solution: Disable Double-Click Zoom via Plotly Config

Plotly’s default behavior treats mobile single taps as double-clicks for zooming, but we can override this with the config() function. Just add this to your Plotly chart definition in Shiny:

output$your_plot_id <- renderPlotly({
  # Your existing Plotly code (ggplotly() or plot_ly() call)
  ggplotly(your_ggplot_object) %>%
    # Disable double-click (and mobile single-tap) zoom
    config(doubleClick = "none")
})

What This Does:

  • The doubleClick = "none" setting tells Plotly to ignore double-click events entirely. Since mobile browsers often map single taps to double-click events in interactive charts, this will stop the unwanted zoom on mobile too.
  • If you still want to keep other interactions (like drag-to-zoom or pan), this setting won’t break those—you’ll just lose the double-click/single-tap zoom trigger.

Extra: If You Want to Disable All Zoom Behaviors

If you don’t need any zoom functionality at all, you can add a couple more config options to lock things down:

output$your_plot_id <- renderPlotly({
  ggplotly(your_ggplot_object) %>%
    config(
      doubleClick = "none",
      scrollZoom = FALSE,  # Disable scroll-wheel zoom
      dragmode = "pan"     # Switch drag behavior to pan instead of zoom
    ) %>%
    layout(dragmode = "pan")  # Ensure drag mode is set correctly
})

That should make your chart behave consistently across desktop and mobile for your target users.

内容的提问来源于stack exchange,提问作者Giannis K

火山引擎 最新活动