Plotly传奇条目显示/隐藏所有绘图角色

时间:2016-06-24 13:51:44

标签: r plotly

假设我正在构建一个绘制散点图,它显示三个不同的组(此处由颜色指定)。我可以通过单击图例中的组来单独显示/隐藏每个组。

Promise

有没有办法在图例中添加按钮来显示/隐藏所有点?

2 个答案:

答案 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;:

plotly output showing expanded buttons

我不知道如何根据当前的可见性动态更新按钮,或者如何使两个按钮永久可见,而不是仅通过下拉菜单提供。

答案 1 :(得分:1)

我不知道如何同时切换所有点,但是(如评论中所示,这将是一个合适的替代方案)可以从它们开始全部隐藏并使点可见一个时间

plot_ly(data=d, x=a, y=b, type='scatter', mode='markers', color=col, visible='legendonly')