首页 > 解决方案 > R Plotly 使用范围选择器按钮选择范围

问题描述

我想用 plotly 的 rangeselector 按钮选择一个特定的范围。目前,该按钮只会选择当前结束日期之前的范围,并且每当我通过绘图交互选择不同的范围时,这都会改变。我可以让按钮始终选择范围:as.POSIXct(c(30,80), origin= "1970-1-1")

library(plotly)

  plot_ly(x = as.POSIXct((1:100), origin= "1970-1-1")) %>%

  add_lines(y = (1:100)^2*sin((1:100))) %>%

  add_lines(y = c(0,10001), x = as.POSIXct(c(49,51), origin="1970-1-1"))%>%

  layout(
    xaxis = list(
      rangeselector = list(
        buttons = list(
          list(
            count = 50,
            label = "50 s",
            step = "second",
            stepmode = "backward")
          ))))

标签: rplotlyaxis

解决方案


使用rangeselector. 但是,relayout可以在这里成为您的朋友-

library(plotly)
x <- as.POSIXct((1:100), origin= "1970-1-1")

updatemenus <- list(
  list(
    active = -1,
    type = 'buttons',
    buttons = list(
      list(
        label = '50s',
        method = "relayout",
        args = list(list(xaxis = list(range = as.POSIXct(c(30,80), origin= "1970-1-1"))))), 
      list(
        label = 'all',
        method = "relayout",
        args = list(list(xaxis = list(range = c(min(x), max(x))))))
    )
  )
)

plot_ly(x = x) %>%

  add_lines(y = (1:100)^2*sin((1:100))) %>%

  add_lines(y = c(0,10001), x = as.POSIXct(c(49,51), origin="1970-1-1"))%>%

  layout(updatemenus = updatemenus)

推荐阅读