使用Plotly在具有按钮的单个图中的多个数据表面

时间:2018-06-29 10:11:11

标签: r plotly interactive surface

我正在用R绘制一个表面图,我几乎从中得到了想要的东西。我想要一个带有按钮的交互式绘图,该按钮允许您在不同的表面之间切换。

这是我的代码。

#simulating random data
x1 <- rnorm(n = 100, mean = 5, sd = 1)
x2 <- rnorm(n = 100, mean = 10, sd = 2.5)

y1 <- rnorm(n = 1000, mean = 4, sd = 3)
y2 <- rnorm(n = 1000, mean = 100, sd = 2.5)

#creating two-dimensional kernal density estimation 
data1 <- kde2d(x = x1, y = x2, n = 25) # n = number of grids)
data2 <- kde2d(x = y1, y = y2, n = 25) # n = number of grids)


p <- plot_ly() %>%
  add_surface(z = data1$z) %>%
  add_surface(z = data2$z)

p <- p %>% layout(
  title = "Button Restyle",
  updatemenus = list(
    list(
      type = "buttons",
      y = 0.8,
      buttons = list(

             list(method = "restyle",
             args = list("visible", c(F,T)),
             label = "group1"),


        list(method = "restyle",
             args = list("visible", c(T,F)),
             label = "group2")))
  ))

按钮可以正常工作,并且可以在不同的表面之间正确切换。我唯一的问题是,对于情节的初始表示,我希望该情节要么显示第一个情节,要么什么都不显示。当前,当我最初运行代码时,两个表面同时显示。

关于如何更改此设置的任何建议?

1 个答案:

答案 0 :(得分:1)

您可以将visible = F添加到任何绘图功能(add_surface)中,以将其最初隐藏。