以下代码用于在ggplot2中生成 fiddle 图:

ggplot(violin,aes(x=variable,y=log(value+0.5),color=Group)) +
  geom_violin(scale="width") +
  geom_jitter(aes(group=Group), position=position_jitterdodge()) +
  stat_summary(fun.y="mean",geom="crossbar", mapping=aes(ymin=..y.., ymax=..y..),
     width=1, position=position_dodge(),show.legend = FALSE) +
  theme(axis.text.x = element_text(angle = 45, margin=margin(0.5, unit="cm")))

结果图如下:

通过ggplot2抑制 fiddle 图中的分散抖动点-LMLPHP

如您所见,有些点在 fiddle 形状的边界之外抖动,我需要将这些点放在 fiddle 的内部。我玩过不同程度的抖动,但取得了任何成功。我将不胜感激实现这一目标的任何指针。

最佳答案

这个问题有点老了,但我认为有更好的解决方案。

正如@Richard Telford在评论中指出的那样,geom_sina是IMO的最佳解决方案。

模拟数据

df <- data.frame(data=rnorm(1200),
                 group=rep(c("A","A","A", "B","B","C"),
                           200)
                 )

作图
ggplot(df, aes(y=data,x=group,color=group)) +
  geom_violin()+
  geom_sina()

结果

通过ggplot2抑制 fiddle 图中的分散抖动点-LMLPHP

希望这会有所帮助。

关于通过ggplot2抑制 fiddle 图中的分散抖动点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51069955/

10-12 20:17