Я хотел бы сделать несколько скрипичных графиков с ggplot2, но я заметил, что медианный и первый и третий квартили не отображаются автоматически. Я считаю, что эти сюжеты были бы более информативными с этой информацией. Кто-нибудь знает, как это сделать?
Медиана и квартиль на скрипке в ggplot2
Ответ 1
Я обнаружил это из поиска google:
Во-первых, это переполнение стека post указывает, что вы можете добавить 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')
Ответ 2
Один из способов сделать это - просто наложить тонкую коробку на верхнюю часть. Вот пример с данными диафрагмы:
require(ggplot2)
ggplot(iris,aes(Species,Sepal.Length))+geom_violin()+geom_boxplot(width=.1)
Ответ 3
В geom_violin есть аргумент draw_quantiles, который позволяет вам указать, какие квантили должны быть включены. Вот пример 1-го, 2-го и 3-го квартилей на радужной оболочке.
require(ggplot2)
ggplot(iris, aes(Species, Sepal.Length)) +
geom_violin(draw_quantiles = c(0.25, 0.5, 0.75))