如何在 geom_violin 图中保持彩色 geom_sina 点?

How to keep coloured geom_sina points within geom_violin plots?

我通过组合 geom_violin 和 geom_sina 成功地抖动了小提琴中的点(上图中的左图),但是当我尝试为这些点着色时,它们在外面的几列上抖动小提琴(上图中的右图)。

我想得到的是左边的带彩色点的图(我不在乎它们是否混合(我的意思是不按颜色分组)。

这是一个使用 mtcars 数据集的演示脚本(我不了解 mtcars 数据集的细节,如果我对变量做了一些疯狂的使用,请道歉)。

library(ggplot2)  
library(ggforce)

data(mtcars)

p <- ggplot(mtcars, aes(x=factor(vs), y=mpg)) + geom_violin()

p + geom_sina(alpha = 0.5)
p + geom_sina(aes(colour = factor(cyl)), alpha = 0.5)

感谢 teunbrand。

p + geom_sina(aes(colour = factor(cyl), group = factor(vs)), alpha = 0.5)

成功了。