【发布时间】:2018-01-01 22:11:18
【问题描述】:
我正在为绘制在 y 轴上的变量创建一个带有下拉选项的箱线图。数据有 4 个“人”,每个观察值都有 A 或 B 类型。对于每个人 1:4,图表为观察值 A 和 B 绘制条形图(例如:https://plot.ly/r/box-plots/#grouped-box-plots)。
我可以创建它,但是一旦我更改下拉列表,所有分组都会变得混乱。下面是示例代码:
library(plotly)
set.seed(123)
x <- rep(1:4, 6)
y1 <- rnorm(24, 5, 2)
y2 <- rnorm(24, 2, 5)
type <- rep(c("A", "A", "B", "B", "B", "B", "A", "A"), 3)
df <- data.frame(x, y1, y2, type)
p <- plot_ly(df, x = ~x) %>%
add_boxplot(y = ~y1, color = ~type, name = "First") %>%
add_boxplot(y = ~y2, color = ~type, name = "Second", visible = F) %>%
layout(
boxmode = "group",
title = "On/Off Box Plot",
xaxis = list(domain = c(0.1, 1)),
yaxis = list(title = "y"),
updatemenus = list(
list(
y = 0.8,
buttons = list(
list(method = "restyle",
args = list("visible", list(TRUE, FALSE)),
label = "y1"),
list(method = "restyle",
args = list("visible", list(FALSE, TRUE)),
label = "y2")))
)
)
p
下拉列表以 y1 开头,看起来正是我想要的样子,但更改下拉列表会重新组合数据并改回 y1 并不会返回原始图表。
分组情况如下: 更改下拉列表后,y1 将所有类型为“A”的“A”分组,y1 和 y2 并排绘制。选项y2 的作用相同,但使用类型“B”数据。我只想要 A/B 两种类型的 y1 数据(如原始图)。
我猜 'boxmode = "group" ' 行在切换过程中丢失了,但我无法让它工作。有谁知道如何维护基于type 的分组?谢谢。
【问题讨论】: