2013-06-26 12 views
13

Chciałbym narysować kilka działek skrzypcowych za pomocą ggplot2, ale zauważyłem, że mediana oraz pierwszy i trzeci kwartyl nie są automatycznie wyświetlane. Wierzę, że te wątki będą o wiele bardziej pouczające dla tych informacji. Czy ktoś wie, jak to zrobić?Mediana i kwartyl na działkach skrzypcowych w ggplot2

Odpowiedz

19

odkryłem ten z wyszukiwarki Google:

Po pierwsze, to przepełnienie stosu post oznacza, że ​​można dodać stat_summary(fun.y="median", geom="point") wykreślić medianę na działka skrzypiec jako punkt.

Jeśli chodzi o kwartyle, najprawdopodobniej będziesz musiał napisać swoją własną funkcję dla argumentu fun.y powyżej, jak pokazano na here. Np .:

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

pełny kod może wyglądać następująco:

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

Dzięki, @spdickson za przykład tęczówki. – jflournoy

+0

dzięki, twoje rozwiązanie działa dobrze! – Martombo

33

Jednym ze sposobów, aby to zrobić, jest po prostu umieszczenie cienkiego pudełka na nim. Oto przykład z danymi tęczówki:

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

enter image description here

+2

Brilliant - bardzo mi się podoba. –

1

geom_violin ma argument draw_quantiles, który pozwala na określenie, które quantiles dołączyć. Oto przykład 1., 2. i 3. kwartyli na tęczówce.

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