2013-06-26 92 views

回答

19

我发现这个由谷歌搜索:

首先,这个堆栈溢出post表明您可以添加stat_summary(fun.y="median", geom="point")到上绘制位数小提琴情节作为一个点。

关于四分位数,您可能必须为上面的fun.y参数编写自己的函数,如here所示。例如: -

median.quartile <- function(x){ 
    out <- quantile(x, probs = c(0.25,0.5,0.75)) 
    names(out) <- c("ymin","y","ymax") 
    return(out) 
} 

完整的代码可能是这样的:

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(iris,aes(Species,Sepal.Length))+ 
    geom_violin()+ 
    stat_summary(fun.y=median.quartile,geom='point') 
+0

谢谢@spdickson的虹膜例子。 – jflournoy

+0

谢谢,你的解决方案工作正常! – Martombo

33

做到这一点的一种方法是在它的顶部放一个薄盒子图。下面是与虹膜数据为例:

require(ggplot2) 
ggplot(iris,aes(Species,Sepal.Length))+geom_violin()+geom_boxplot(width=.1) 

enter image description here

+2

辉煌 - 我很喜欢这个。 –

1

geom_violin有一个参数draw_quantiles,允许您指定分位数,包括。这里是虹膜第一,第二和第三四分位数的例子。

require(ggplot2) 
ggplot(iris, aes(Species, Sepal.Length)) + 
geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))