这个问题是对这里提出的问题的答案的扩展: Median and quartile on violin plots in ggplot2

该解决方案效果很好,但是在使用诸如 fill='foo' 之类的选项时,如何扩展它以同时考虑 fiddle 图的位置

例子:

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')

此处的汇总统计数据混杂,因为它没有考虑由于填充星体映射造成的位移。

这可以解决吗?

提前 - 谢谢!

最佳答案

您应该将 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))

关于r - ggplot2 中高级 fiddle 图的中位数和四分位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19402826/

10-10 07:24