show/hide 所有绘图字符的 Plotly 图例条目
Plotly legend entry to show/hide all plotting characters
假设我正在构建一个显示三个不同组(此处由颜色指定)的 plotly 散点图。我可以通过单击图例中的组来单独 show/hide 每个组。
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)
有没有办法在图例中添加一个按钮到show/hide所有点?
我不知道有什么方法可以同时切换所有点,但是(正如评论中指出的那样,这将是一个合适的选择)可以从所有点隐藏开始,然后让点一次可见时间
plot_ly(data=d, x=a, y=b, type='scatter', mode='markers', color=col, visible='legendonly')
这可能更接近于最初要求的内容,但这只是一个"button"而不是图例条目,因此放置很困难。
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")
)
)
))
这会产生(取决于 plotly 的版本)以下下拉列表 "buttons":
我不知道如何根据当前可见性动态更新按钮,或者如何使两个按钮永久可见而不是仅通过下拉菜单可用。
假设我正在构建一个显示三个不同组(此处由颜色指定)的 plotly 散点图。我可以通过单击图例中的组来单独 show/hide 每个组。
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)
有没有办法在图例中添加一个按钮到show/hide所有点?
我不知道有什么方法可以同时切换所有点,但是(正如评论中指出的那样,这将是一个合适的选择)可以从所有点隐藏开始,然后让点一次可见时间
plot_ly(data=d, x=a, y=b, type='scatter', mode='markers', color=col, visible='legendonly')
这可能更接近于最初要求的内容,但这只是一个"button"而不是图例条目,因此放置很困难。
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")
)
)
))
这会产生(取决于 plotly 的版本)以下下拉列表 "buttons":
我不知道如何根据当前可见性动态更新按钮,或者如何使两个按钮永久可见而不是仅通过下拉菜单可用。