在 boxplot 中保持躲避位置传递给 plotly

Ham*_*deh 4 r ggplot2 boxplot plotly

我有一个定期boxplotggplot2

# working example
library(ggplot2)

mtcars %>%
  mutate(cyl=as.factor(cyl)) %>%
  mutate(vs=as.factor(vs)) %>%

  ggplot(aes(y=mpg, x=cyl)) +
  geom_boxplot(aes(colour=vs))
Run Code Online (Sandbox Code Playgroud)

它看起来像这样: 在此处输入图片说明

但是,当我创建一个对象并将其传递给 时plotly,我失去了闪避位置:

library(plotly)
mtcars_boxplot <-
mtcars %>%
  mutate(cyl=as.factor(cyl)) %>%
  mutate(vs=as.factor(vs)) %>%

  ggplot(aes(y=mpg, x=cyl)) +
  geom_boxplot(aes(colour=vs))

mtcars_boxplot %>%
  ggplotly() 
Run Code Online (Sandbox Code Playgroud)

它看起来像这样: 在此处输入图片说明

我试图添加position=position_dodge()&position=position_dodge2()但他们都没有工作:

library(plotly)

mtcars_boxplot <-
mtcars %>%
  mutate(cyl=as.factor(cyl)) %>%
  mutate(vs=as.factor(vs)) %>%

  ggplot(aes(y=mpg, x=cyl)) +
  geom_boxplot(aes(colour=vs), position=position_dodge2())

mtcars_boxplot %>%
  ggplotly() 
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能像第一个情节一样保持闪避位置?

A. *_*man 7

按照这里的建议,添加layout(boxmode = "group")

library(plotly)
mtcars_boxplot %>%
  ggplotly() %>%
  layout(boxmode = "group")
Run Code Online (Sandbox Code Playgroud)