ggplot2中高级小提琴图的中位数和四分位数

时间:2013-10-16 12:00:03

标签: r ggplot2

这个问题是为了扩展这里提出的问题的答案: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')

Violin plot with summary

此处汇总统计数据混合在一起,因为考虑到填充星号映射,它不会占用位移。

可以修复吗?

提前 - 谢谢!

1 个答案:

答案 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))

enter image description here