这个问题是为了扩展这里提出的问题的答案:Median and quartile on violin plots in ggplot2。
解决方案效果很好,但在使用fill ='foo'等选项时,如何将小提琴图的位置考虑在内?
示例:
require(ggplot2)
median.quartile <- function(x){
out <- quantile(x, probs = c(0.25,0.5,0.75))
names(out) <- c("ymin","y","ymax")
return(out)
}
ggplot(data=mtcars,aes(x=factor(cyl),y=drat, fill=factor(am)))+
geom_violin() +
stat_summary(fun.y=median.quartile,geom='point')
此处汇总统计数据混合在一起,因为考虑到填充星号映射,它不会占用位移。
可以修复吗?
提前 - 谢谢!
答案 0 :(得分:4)
您应该将position = position_dodge(width = 0.9)
添加到stat_summary()
,以确保根据填充值对点进行躲避。
ggplot(data=mtcars,aes(x=factor(cyl),y=drat, fill=factor(am)))+
geom_violin() +
stat_summary(fun.y=median.quartile,geom='point',
position = position_dodge(width = 0.9))