【问题标题】:Plotly - Changing dropdowns disables groupings for boxplotPlotly - 更改下拉列表会禁用箱线图的分组
【发布时间】: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”分组,y1y2 并排绘制。选项y2 的作用相同,但使用类型“B”数据。我只想要 A/B 两种类型的 y1 数据(如原始图)。

我猜 'boxmode = "group" ' 行在切换过程中丢失了,但我无法让它工作。有谁知道如何维护基于type 的分组?谢谢。

【问题讨论】:

    标签: r plotly


    【解决方案1】:

    updatemenus 的长度应为 4,因为实际上有 4 条迹线(一次可见 2 条)。请注意,对于组,每个图例项都有相应的轨迹。不幸的是,R 对向量的自动重复掩盖了这一点。

    updatemenus 的值应该是:

    updatemenus = list(
      list(
        y = 0.8,
        buttons = list(
          list(method = "restyle",
               args = list("visible", list(TRUE, TRUE, FALSE, FALSE)),
               label = "y1"),
    
          list(method = "restyle",
               args = list("visible", list(FALSE, FALSE, TRUE, TRUE)),
               label = "y2")))
    )
    

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 2017-01-06
      • 2019-01-23
      • 2021-10-30
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      相关资源
      最近更新 更多