R中的下拉菜单绘制子样本

Dropdown menu in R plotly to plot subsample

我正在尝试使用下拉菜单绘制数据集的子样本,使用 R 中 plotly 的下拉菜单。

这是我到目前为止(基于此answer)没有成功的:

library(data.table)
library(ggplot2)
library(plotly)

X <- data.table(xcoord = 1:10, ycoord = 1:10)
Z <- X[xcoord < 5]

gg <- ggplot(X, aes(x = xcoord, y = ycoord)) + geom_point()

ggplotly(gg) %>%
  layout(updatemenus = list(
    list(buttons = list(
      list(method = "restyle",
           args = list(list("x", list(X$xcoord)),
                       list("y", list(X$xcoord))),
           label = "X"),
      list(method = "restyle",
           args = list(list("x", list(Z$xcoord)),
                       list("y", list(Z$ycoord))),
           label = "Z")
    ))
  ))

找到解决方案:不得不改用命名列表。

ggplotly(gg) %>%
  layout(updatemenus = list(
    list(buttons = list(
      list(method = "restyle",
           args = list(list(x = list(X$xcoord)),
                       list(y = list(X$xcoord))),
           label = "X"),
      list(method = "restyle",
           args = list(list(x = list(Z$xcoord)),
                       list(y = list(Z$ycoord))),
           label = "Z")
    ))
  ))