我想用 ggplot2 画一些小提琴图,但我注意到中位数和第一和第三四分位数不会自动显示。我相信这些图会提供更多信息。有人知道怎么做吗?
问问题
22251 次
3 回答
44
一种方法是在其顶部放置一个细长的箱形图。这是虹膜数据的示例:
require(ggplot2)
ggplot(iris,aes(Species,Sepal.Length))+geom_violin()+geom_boxplot(width=.1)
于 2013-06-26T17:13:02.187 回答
23
我从谷歌搜索中发现了这一点:
首先,这个 Stack Overflow帖子表明您可以添加stat_summary(fun.y="median", geom="point")
以在小提琴图上绘制中值作为一个点。
关于四分位数,您可能必须为上面的 fun.y 参数编写自己的函数,如此处所示。例如:
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')
于 2013-06-26T17:25:20.917 回答