假设我正在构建一个绘制散点图,它显示三个不同的组(此处由颜色指定)。我可以通过单击图例中的组来单独显示/隐藏每个组。
Promise
有没有办法在图例中添加按钮来显示/隐藏所有点?
答案 0 :(得分:3)
这可能更接近最初的要求,但它只是一个"按钮"不是图例条目,因此放置很困难。
library(ggplot2)
library(plotly)
d <- data.frame("a" = sample(1:50, 20, T), "b" = sample(1:50, 20, T),
"col" = factor(sample(1:3, 20, T)))
gg <- ggplot() + geom_point(aes(x = a, y = b, color = col), data = d)
gg
plotly_build(gg) %>%
layout(updatemenus = list(
list(
type = "buttons",
direction = "right",
xanchor = "center",
yanchor = "top",
showactive = FALSE,
x = 1.05,
y = 0.2,
buttons = list(
list(method = "restyle",
args = list("visible", "all"),
label = "show all"),
list(method = "restyle",
args = list("visible", "legendonly"),
label = "hide all")
)
)
))
这会产生(根据情节的版本)以下下拉按钮&#34;:
我不知道如何根据当前的可见性动态更新按钮,或者如何使两个按钮永久可见,而不是仅通过下拉菜单提供。
答案 1 :(得分:1)
我不知道如何同时切换所有点,但是(如评论中所示,这将是一个合适的替代方案)可以从它们开始全部隐藏并使点可见一个时间
plot_ly(data=d, x=a, y=b, type='scatter', mode='markers', color=col, visible='legendonly')