2012-04-05 11 views
7

hepsi aynı eksene sahip, birbirinden altına araziler (hat arsa ve çubuk grafikler) farklı çizmek çalışıyorum: AncakAynı x ekseni ile xyplot'un altında çizme çubuğu grafiği?

c1 <- ggplot(data, aes(date, TotalMutObs)) + stat_smooth(se = FALSE) + 
      geom_point() + 
      opts(axis.title.x = theme_blank()) + 
      ylab("Cumulative number of new mutations") 
c2 <- ggplot(data, aes(date, distance)) + stat_smooth(se = FALSE) + 
      geom_point() + 
      opts(axis.title.x = theme_blank()) + 
      ylab("Cumulative mean pairwise distance") 
c3 <- ggplot(data, aes(x = date, y = NbOfHorses)) + 
      geom_bar(stat = "identity") + 
      opts(axis.title.x = theme_blank()) + 
      ylab("Number of horses sampled") 

grid.arrange(c1, c2,c3) 

, x ekseni üzerinde tarih için sıraya değildir farklı araziler. İşte

enter image description here denemek için bazı veriler geçerli:

date<-c("2003-03-13","2003-03-25","2003-03-26","2003-03-27","2003-03-28","2003-03-31","2003-04-01","2003-04-02","2003-04-04","2003-04-08","2003-04-09","2003-04-10","2003-04-11","2003-04-14","2003-04-15","2003-04-17","2003-04-19","2003-04-21","2003-04-22","2003-04-28","2003-05-08"); 

NbOfHorses<-c("1","2","1","3","4","5","4","3","3","3","3","4","2","4","1","2","4","1","2","1","2"); 

TotalMutObs<-c("20","30","58","72","140","165","204","230","250","286","302","327","346","388","393","414","443","444","462","467","485"); 

distance<-c("0.000693202","0.00073544","0.000855432","0.000506876","0.000720193","0.000708047","0.000835468","0.000812401","0.000803149","0.000839117","0.000842048","0.000856393","0.000879973","0.000962382","0.000990666","0.001104861","0.001137515","0.001143838","0.00121874","0.001213737","0.001201379"); 

data<-as.data.frame(cbind(date,NbOfHorses,TotalMutObs,distance)); 

Şerefe, Joseph

+0

yok mu? C3 <- c3 + xlim (aralık (veri $ tarihler)) ' –

+1

gibi bir şey Bu sorun olduğunu düşünmüyorum çünkü üç x ekseninin tamamı aynı aralıktadır. – blJOg

+0

Bazı verileri öne koyun ve test ederiz. –

cevap

7

bu sorunu çözmek için bir yol olduğunu ggplot2 içinde çalışmak ve kopyalarını istifleme konusunda yaratıcı almak üzere her Verileriniz ve ihtiyacınız olan her bir coğrafi bölgeye altkümeler gönderin. Bir 'xlim ggplot2 olarak()' fonksiyonu

#A version of your data cleaned up 
dat <- data.frame(date = as.Date(date),NbOfHorses = as.numeric(NbOfHorses), 
       TotalMutObs = as.numeric(TotalMutObs),distance = as.numeric(distance)) 

#Create three copies, one for each panel 
# Use informative titles for grp to be panel titles  
fullDat <- rbind(dat,dat,dat) 
fullDat$grp <- rep(c('Cumulative number of new mutations', 
         'Cumulative mean pairwise distance', 
         'Number of horses sampled'),each = nrow(dat)) 

ggplot(fullDat,aes(x = date)) + 
    facet_wrap(~grp,nrow = 3,scale = "free_y") + 
    geom_point(data = subset(fullDat,grp == 'Cumulative number of new mutations'), 
     aes(y = TotalMutObs)) + 
    stat_smooth(data = subset(fullDat,grp == 'Cumulative number of new mutations'), 
     aes(y = TotalMutObs),se = FALSE) + 
    geom_point(data = subset(fullDat,grp == 'Cumulative mean pairwise distance'), 
     aes(y = distance)) + 
    stat_smooth(data = subset(fullDat,grp == 'Cumulative mean pairwise distance'), 
     aes(y = distance),se = FALSE) + 
    geom_bar(data = subset(fullDat,grp == 'Number of horses sampled'), 
     aes(y = NbOfHorses),stat = "identity") + 
    labs(x = NULL,y = NULL) 

enter image description here

+0

Bu güzel, çok teşekkür ederim! – blJOg

İlgili konular