Shiny Plotly R - 在图形之间切换时,保持缩放

Shiny Plotly R - When Toggling Between Graphs, Maintain Zoom

我有一个闪亮的应用程序,我正在用 plotly 绘制多个 ggplot2 散点图。在散点图之间切换时如何保持缩放固定?

我正在寻找这样的东西,但对于 Shiny Plotly R:https://community.plot.ly/t/preserving-ui-state-like-zoom-in-dcc-graph-with-uirevision/15793

编辑:

我目前正在尝试实施 plotlyProxy(),但到目前为止还没有成功。

这是我目前拥有的(多余的代码已被删除):

server <- function(input, output, session) {


  output$trendPlot <- renderPlotly({

    # build graph with ggplot syntax
    p <- ggplot()

    zoom <- event_data("plotly_relayout","source")

    observeEvent(lims(), {
      plotlyProxy("plot", session) %>%
        plotlyProxyInvoke("relayout", list(xaxis.range = list(zoom$`xaxis.range[0]`,zoom$`xaxis.range[1]`),
                                           yaxis.range = list(zoom$`yaxis.range[0]`,zoom$`yaxis.range[1]`)))
    })

  })


}

但它什么也没做。当我切换到不同的散点图时,图形仍然重置 x 轴和 y 轴...

对于任何感兴趣的人,这就是我解决问题的方法:

server <- function(input, output) {

output$trendPlot <- renderPlotly({

zoom <- event_data("plotly_relayout")

# build graph with ggplot syntax
if(is.null(zoom) || names(zoom[1]) %in% c("xaxis.autorange", "width") ||names(zoom[3])==c("xaxis.showspikes")) {
   p <- ggplot()
}
else{
p <- ggplot() + 
scale_y_continuous(limits=c(zoom$`yaxis.range[0]`,zoom$`yaxis.range[1]`)) +
scale_x_continuous(limits=c(zoom$`xaxis.range[0]`,zoom$`xaxis.range[1]`))
    }

  })


}