【发布时间】:2020-09-03 05:11:08
【问题描述】:
我正在尝试使用plotly 对我的箱形图进行细分,以便相同颜色的框在 x 轴上彼此对齐。但是,当我使用 boxmode = group 将它们分开时:
library(plotly)
library(tidyverse)
df <- data.frame(
w = rep(1:3, times = 2, each = 60),
x = rep(c("A", "B", "C"), times = 20),
y = rep(c("D", "E", "F"), each = 20),
z = rnorm(120)
)
p <- function(val) {
filter(df, w == val) %>%
plot_ly(x = ~x, y = ~z, color = ~y, type = "box") %>%
layout(boxmode = "group")
}
subplot(lapply(unique(df$w), p), nrows = 3, shareX = TRUE)
使用ggplot时不会出现这种情况:
(ggp <- ggplot(df, aes(x = x, y = z, color = y)) +
geom_boxplot() +
facet_wrap(. ~ w, nrow = 3))
但如果我尝试将此情节传递给ggplotly(),它确实会再次发生:
ggplotly(ggp) %>%
layout(boxmode = "group")
删除boxmode = "group" 会导致不同颜色的盒子相互堆叠,更糟糕的是!我已经尝试使用alignmentgroup 和offsetgroup 进行一些更改,但它们似乎覆盖了boxmode 参数并导致所有内容再次堆叠。我还能做些什么来生成一个交互式绘图,让每个盒子都保持在自己的车道上?
here 也有类似的问题,但我认为这不能解决我的问题。
【问题讨论】: