[R] date format in xyplot

Christine Lee leptostracan at yahoo.com
Tue Aug 18 16:25:35 CEST 2015


Thank you Duncan,

I have tried the scales function.  It ends up with 2015-09-15, which is acceptable. It is far much better than "09 15" shown on the axis.  The problem is the data were obtained in different years.  This makes "2015" shown in lattice plots of different years.  I have tried to put in the year in the raw data (such as "1/10/2013"), but the plot is really bizzard, with the 2002 plots have all the points on the left of the plot whereas 2013 plots have all the data points on the right of the plots because the x-axis shows data from 2001 to 2013.  I feel like hopeless to insist to have the axis label shown as "Sep 15" because it seems to be the problem of my computer setting.  Is there a way to shows graphs in different years, but with the same scale beginning from September to December?

Regards,
Christine


--------------------------------------------
2015年8月18日 星期二,Duncan Mackay <dulcalma at bigpond.com> 寫道﹕

 主題: RE: [R] date format in xyplot
 收件人: "R" <r-help at r-project.org>

 日期: 2015年8月18日,星期二,下午4:08

 Hi Christine

 If somethings go wrong:
 1 first check your data

 str(Raw)
 'data.frame':   10 obs. of 
 5 variables:
  $ Date   : Factor
 w/ 16 levels "1/10","1/11",..: 6 7 2 4
 12 9 7 2 4 12
  $ Year   : int 
 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002
  $ Station: Factor w/ 4 levels
 "E","F","H","I": 1 1
 1 1 1 2 2 2 2 2
  $ Abun   : num 
 3.42 1.33 3.67 3.67 3.92 2.17 2.5 1.67 6.33 0.67
  $ Date1  : Date, format:
 "2015-09-19" "2015-10-02"
 "2015-11-01"
 "2015-11-12" ...

 Raw$Date2 <- as.character(Raw$Date1)
 Raw$Date2
 [1]
 "2015-09-19" "2015-10-02"
 "2015-11-01" "2015-11-12"
 "2015-11-29"
 "2015-09-20" "2015-10-02"
 "2015-11-01" "2015-11-12"
 "2015-11-29"
 Raw$Date2 <-
 as.Date(Raw$Date2, "%Y-%m-%d")

 2 read the help guide again if not done
 recently ?lattice::xyplot or ?xyplot
 3 start
 with a minimum number of arguments

 xyplot(Abun~Date2|as.factor(Year), Raw)
 or 
 xyplot(Abun~Date2, Raw)
 if you are still having problems

 Dates are hard work in any
 language as they are not consistent so:
 a. 
 use  default
 b.  use your own 

 This works

 xyplot(Abun~Date2|as.factor(Year), Raw,
        par.settings =
 list(stripbackground = "transparent"), #
 background
 colour controlled here
        type="p",
        scales = list(x = list(at =
 sort(c(seq(as.Date(Raw$Date2[1]-4), by =
 "months", length = 4),
                                
            seq(as.Date(Raw$Date2[1]+12),
 by
 = "months", length = 3))),
                            
    labels =
 format(sort(c(seq(as.Date(Raw$Date2[1]-4), by =
 "months", length = 4),
  
 seq(as.Date(Raw$Date2[1]+12), by =
 "months", length = 3))), "%m-%d") )
 ),
    
    xlab=list("Month",cex=1.5),
    
    ylab=list("Abundance",cex=1.5),
        cex=2,
  
      pch=c(16,16,21),
    
    col=c("Black","Grey","Black")
 )

 par.settings
 is confining the parameters set by trellis.par.set()  to
 the
 function
 to get them

 names(trellis.par.get() )
 and going further
 trellis.par.get()$superpose.symbol
 will give you the values for
 superpose.symbol

 Beware: Do
 not make the labels etc so big that the axis labels are hard
 to
 read. Think of final size

 Regards

 Duncan

 Duncan
 Mackay
 Department of Agronomy and Soil
 Science
 University of New England
 Armidale NSW 2351
 Email: home:
 mackay at northnet.com.au

 -----Original Message-----
 From: R-help [mailto:r-help-bounces at r-project.org]
 On Behalf Of Christine
 Lee via R-help
 Sent: Tuesday, 18 August 2015 14:16
 To: r-help at r-project.org
 Subject: [R] date format in xyplot

 To whom it may concern,

 I have tried to plot some
 numbers against time with the time on the X-axis
 shown as "Jan", "Feb",
 etc.

 I used the following
 commands:
 Raw<-structure(list(Date =
 structure(c(6L, 7L, 2L, 4L, 12L, 9L, 7L, 
 2L, 4L, 12L), .Label = c("1/10",
 "1/11", "11/11", "12/11",
 "13/10", 
 "19/9",
 "2/10", "2/11", "20/9",
 "26/11", "29/10", "29/11",
 "30/11", 
 "31/10",
 "4/10", "6/10"), class =
 "factor"), Year = c(2002L, 
 2002L,
 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L
 ), Station = structure(c(1L, 1L, 1L, 1L, 1L,
 2L, 2L, 2L, 2L, 
 2L), .Label =
 c("E", "F", "H",
 "I"), class = "factor"), Abun = c(3.42,

 1.33, 3.67, 3.67, 3.92, 2.17, 2.5, 1.67,
 6.33, 0.67), Date1 =
 structure(c(16697, 
 16710, 16740, 16751, 16768, 16698, 16710,
 16740, 16751, 16768
 ), class =
 "Date")), .Names = c("Date",
 "Year", "Station", "Abun", 
 "Date1"), row.names = c(NA, 10L),
 class = "data.frame")

 Raw$Date1<-as.Date(Raw$Date,"%d/%m")
 xyplot(Abun~Date1|as.factor(Year),Raw,type="p",xlab=list("Month",cex=1.5),yl
 ab=list("Abundance",cex=1.5),cex=2,pch=c(16,16,21),col=c("Black","Grey","Bla
 ck"),strip=strip.custom(bg='white'),format="%B-%d")

 The date format shown on
 X-axis was just "10-1", "10-15"

 I should be grateful if any
 one could help indicating what has gone wrong?

 Regards,
 Christine

 ______________________________________________
 R-help at r-project.org
 mailing list -- To UNSUBSCRIBE and more, see
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained,
 reproducible code.



More information about the R-help mailing list