2013-10-20 20 views
6

ja jak działka dwie serie dziesięć działek skrzypcowe jedna na drugą:nakładki działki skrzypcowe ggplot2

library(ggplot2) 
#generate some data 

coco1<-rnorm(10000,0,1) 
coco2<-c(runif(10000)) 
decile<-rbinom(10000,9,1/2)+1 
coconut<-data.frame(coco1,coco2,decile) 

#draw the violin plots of the coco1 serie 
p <- ggplot(coconut, aes(factor(decile), coco1)) 
p<-p + geom_violin(aes(alpha=0.3,colour="#1268FF")) 
p 

#draw the violin plots of the coco2 serie 
q <- ggplot(coconut, aes(factor(decile), coco2)) 
q<-q + geom_violin(aes(alpha=0.3,colour="#3268FF")) 
q 

chciałbym wykreślić wykres skrzypce „p” i „q”, na tym samym wykresie i chcę, aby każdy działka skrzypcowego "q" znalazła się nad odpowiadającym mu działem skrzypiec "p".

+0

Dobra robota przedstawiająca powtarzalne pytanie z jasno określonymi celami. – beroe

Odpowiedz

7

Można tylko dodać geom_violin drugiej działki do swojego pierwszego:

p <- ggplot(coconut, aes(factor(decile), coco1)) 
p <- p + geom_violin(aes(colour = "#1268FF"), alpha = 0.3) 
q <- p + geom_violin(aes(y = coco2, colour = "#3268FF"), alpha = 0.3) 

Teraz q zawiera obie wersje skrzypiec. enter image description here

Nawiasem mówiąc: Jeśli chcesz, aby pozbyć się z legendą kolorów, trzeba określić colour poza aes.

+0

Dobry przykład (+1), częstym sposobem na to jest odzwierciedlenie jednej z rozkładów grup, ponieważ gęstość jest symetryczna. Podam przykład tego tutaj w komentarzach, http://mbjoseph.github.io/blog/2013/06/24/violin/. Można również rozważyć różne systemy ważenia; w tym przykładzie niebieskie i czerwone grupy powinny prawdopodobnie mieć równe obszary, ponieważ mają one równe rozmiary próbek. –

Powiązane problemy