[R] date format in xyplot

Duncan Mackay
Tue, 18 Aug 2015 08:08:56 -0000

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.