这是对最后一个问题的跟进: Split beeswarm plot
我认为这是一个新问题,因为我的第一个问题得到了充分的回答。但是根据我的真实数据,突然出现了一种我不理解的奇怪行为。
使用之前的数据框
my_dat <- data.frame(x = 'x', m = rep(c('a','b'),100), y = rnorm(200))
建议的解决方案很好用。但是当我稍微提高我的数据时(只是增加样本量!),情节变得很奇怪:
my_dat <- data.frame(x = 'x', m = letters[1:2], y = sample(0:100, 2000, replace = T), stringsAsFactors = F)
require(ggplot2)
require(ggbeeswarm)
require(dplyr)
p <- ggplot(my_dat, aes(x,y,color=m))+ ## this is copy/paste from @Jimbou's great idea.
geom_quasirandom(method = 'smiley')
p <- ggplot_build(p)
p$data[[1]] <- p$data[[1]] %>%
mutate(x=case_when(
colour=="#00BFC4" ~ PANEL + abs(PANEL - x),
TRUE ~ PANEL - abs(PANEL - x))
)
plot(ggplot_gtable(p))
为什么这会随着样本量的增加而发生?