2012-05-15 4 views
5

Je cherchais un moyen de tracer en utilisant facet_grid en ggplot2 qui n'affiche que quelques facettes sélectionnées. dire que j'ai l'intrigue suivante:plot seulement quelques facettes select dans facet_grid

enter image description here

cherché un moyen rapide, par exemple, juste parcelle facettes 1 et 3.

#data 
y<-1:12 
x<-c(1,2,3,1,2,3,1,2,3,1,2,3) 
z<-c("a","a","a","b","b","b","a","a","a","b","b","b") 
df<-as.data.frame(cbind(x,y,z)) 

#plot 

a <- ggplot(df, aes(x = z, y = y, 
    fill = z)) 
b <- a + geom_bar(stat = "identity", position = "dodge") 
c <- b + facet_grid(. ~ x, scale = "free_y") 
c 

Il est évident que je compris comment couper juste en haut mes données d'abord mais cela doit bien sûr être possible d'allouer en ggplot2 Même un simple coup de pouce serait le bienvenu.

+3

Je ne sais pas ce que vous entendez par "affecter à ggplot2". La façon dont vous faites ceci est de sous-ensembles de vos données lorsque vous les passez à ggplot. – joran

+0

hmm .. Je viens de compliquer les choses. Merci beaucoup. –

Répondre

8

Utilisez subset dans votre appel ggplot.

plot_1 = ggplot(subset(df, x %in% c(1, 2)), aes(x=z, y=y, fill=z)) + 
     geom_bar(stat = "identity", position = "dodge") + 
     facet_grid(. ~ x, scale = "free_y") 

enter image description here

2

Serait-ce bien,

a <- ggplot(subset(df, x != 2), aes(x = z, y = y, fill = z)) 
b <- a + geom_bar(stat = "identity", position = "dodge") 
c <- b + facet_grid(. ~ x, scale = "free_y") 
c 
Questions connexes