使用 Plotly 的带有按钮的单个 Plot 中的多个数据表面
Multiple data surfaces in a single Plot with buttons using Plotly
我正在用 R 中的 plotly 制作曲面图,我几乎得到了我想要的东西。我想要一个带有按钮的交互式绘图,允许您在不同的表面之间切换。
这是我的代码。
#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")))
))
这些按钮运行良好,并且可以在不同界面之间正确切换。我唯一的问题是,对于情节的初始呈现,我希望情节要么显示第一个情节,要么什么都不显示。当前,当我最初 运行 代码时,两个表面一起显示。
关于如何更改此设置的任何建议?
您可以将 visible = F
添加到您的任何绘图函数 (add_surface
) 以在初始时隐藏它们。
我正在用 R 中的 plotly 制作曲面图,我几乎得到了我想要的东西。我想要一个带有按钮的交互式绘图,允许您在不同的表面之间切换。
这是我的代码。
#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")))
))
这些按钮运行良好,并且可以在不同界面之间正确切换。我唯一的问题是,对于情节的初始呈现,我希望情节要么显示第一个情节,要么什么都不显示。当前,当我最初 运行 代码时,两个表面一起显示。
关于如何更改此设置的任何建议?
您可以将 visible = F
添加到您的任何绘图函数 (add_surface
) 以在初始时隐藏它们。