2015-04-23 6 views
0

У меня есть три кадра данных, не очень интересные данные, которые я знаю, но это не проблема, которую я пытаюсь решить.Отсутствующие метки оси X в R-графике

> Ascidcv 
      Date Average  SE 
    3 2014-09-01 37.250000 6.326673 
    15 2014-10-02 6.285714 2.738613 
    > Ascidc1 
       Date Average SE 
    3 2014-10-15  0 0 
    34 2014-11-12  0 0 
    62 2014-12-11  0 0 
    88 2015-02-11  0 0 
    119 2015-03-09  0 0 
    > Ascidc2 
       Date Average SE 
    18 2014-10-15  0 0 
    48 2014-11-12  0 0 
    75 2014-12-11  0 0 
    103 2015-02-11  0 0 
    135 2015-03-09  0 0 

Я использую эти кадры данных для получения участка:

plot(Ascidcv$Date, Ascidcv$Average, type='p', pch=4, col="red", xlab='Date', ylab='', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"), as.Date("2015-03-09")), ylim=c(0,120)) 
points(Ascidc1$Date, Ascidc1$Average, type='p', pch=19, xlab='Date', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100)) 
points(Ascidc2$Date, Ascidc2$Average, type='p', pch=2, col="blue", xlab='Date', ylab='Average num ind.', main=expression(italic('Bugula sp.')), xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100)) 
mtext("Average % cover",side=2,line=3) 

По какой-то причине, только месяцы сентября, октябрь и март затевается на оси х, с ноября- февраля неявку , Я уверен, что это довольно простое решение, но я не могу понять это. Будем очень благодарны любой помощи! Благодаря!

+0

Это потому, что вы первый участок "Ascidcv", который не имеет все месяцы. –

ответ

3

Вы можете сделать свой участок в два этапа:

первый, ваш участок без оси

plot(Ascidcv$Date, Ascidcv$Average, type='p', pch=4, col="red", xlab='Date', 
    ylab='', main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"), 
    as.Date("2015-03-09")), ylim=c(0,120),xaxt="n") 

затем добавьте ось с клещами в первый день каждого месяца с сентября 2014 года март 2015 с axis.Date и вектором для соответствующих дат

axis.Date(1, at=as.Date(c(paste0("2014-",c("09",10:12),"-01"), 
      paste0("2015-0",1:3,"-01")))) 

наконец, добавить другие точки и текст

points(Ascidc1$Date, Ascidc1$Average, type='p', pch=19, xlab='Date', 
     main=expression(italic('Ascidiella sp.')), xlim=c(as.Date("2014-09-01"), 
     as.Date("2014-12-11")), ylim=c(0,100)) 

points(Ascidc2$Date, Ascidc2$Average, type='p', pch=2, col="blue", xlab='Date', 
     ylab='Average num ind.', main=expression(italic('Bugula sp.')), 
     xlim=c(as.Date("2014-09-01"),as.Date("2014-12-11")), ylim=c(0,100)) 

mtext("Average % cover",side=2,line=3) 

enter image description here

+1

@DavidArenburg, спасибо за редактирование, делает его намного понятнее! :-) – Cath