I am showing two alternatives, both from the HH package.
install.packages("HH")

The first one does essentially what you request,

smithdata <- src[c("x", "trt")]
smithdata$timefactor <- factor(src$time)
position(smithdata$timefactor) <- as.numeric(levels(smithdata$timefactor))
position(smithdata$trt) <- c(7, 17)
smithdata


intxplot(x ~ timefactor, data=smithdata, groups=trt, se=TRUE, ylim=c(-1,9),
         cv=1, main="this is your graph, with critical value=1.00")

intxplot(x ~ timefactor, data=smithdata, groups=trt, se=TRUE, ylim=c(-1,9),
         main="this is your graph with more typical critical value=1.96")


## I don't know what the red and green dots on your sample graph signify, so
## I didn't attempt to reproduce them.

## When I look at interaction plots, I normally want to look at both
## sequences, interchanging the role of the x-variable and the
## trace-variable.  Therefore I recommend

interaction2wt(x ~ timefactor*trt, data=smithdata, simple=TRUE)

Rich


On Tue, May 29, 2012 at 4:42 PM, John Smith <zmring@gmail.com> wrote:

> Dear R users,
>
> I am trying to use xyplot to draw group mean and CI. The following is the
> sample code. But I want:
>
>   1. Use different colors and symbols to draw individual points, CI and
>   the lines connect group means from different time points;
>   2. Add jitters to x axis to allow CIs not be overlapped
>
> Could anyone modify the attached code to achieve this?
>
> Thanks
>
>
>
>
>
> library(lattice)
> set.seed(123)
> src <- data.frame(time = rep(c(1, 6, 24), rep(6,3)), trt =
> rep(rep(c('C','T'), each=3), 3))
> src <- transform(src, x=sqrt(time)+2*(trt=='C')+rnorm(18), trt =
> ordered(trt, levels=c('C','T')))
> src <- src[-5,]
> src$m <- ave(src$x, src[c('time','trt')], FUN = mean)
> src$sd <- ave(src$x, src[c('time','trt')], FUN = sd)
> src$n <- ave(src$x, src[c('time','trt')], FUN = length)
> src <- transform(src, se = sd/sqrt(n))
> src <- transform(src, cl=m-se, cu=m+se)
>
> prepanel.ci <- function(x, y, ly, uy, subscripts, ...)
>  {
>    x <- as.numeric(x)
>    ly <- as.numeric(ly[subscripts])
>    uy <- as.numeric(uy[subscripts])
>    list(ylim = range(y, uy, ly, finite = TRUE))
>  }
>
> panel.ci <- function(x, y, ly, my, uy, subscripts, ...)
>  {
>    x <- as.numeric(x);    y <- as.numeric(y);  my <-
> as.numeric(my[subscripts])
>    ly <- as.numeric(ly[subscripts]);  uy <- as.numeric(uy[subscripts])
>    panel.xyplot(x, y, ...)
>    panel.arrows(x, ly, x, uy, length = 0.25, unit = "native", angle = 90,
> code = 3)
>    panel.lines(x, my)
>  }
>
> par.settings <- list(superpose.symbol = list(col = c("red", "green",
> "blue"),
>                       fill = c("red", "green", "blue"), pch=15:17),
>                      superpose.line = list(col = c("red", "green",
> "blue")))
> windows(width=10.67, height=6.60)
> xyplot(x ~ time, xlab="Time", ylab="X", groups=trt, data=src, trt=src$trt,
>       ly = src$cl, uy = src$cu, mx = src$time, my = src$m, type="p",
>       prepanel = prepanel.ci, panel = panel.superpose, panel.groups =
> panel.ci,
>       auto.key = list(space = "top",  points = TRUE, lines = TRUE,
> columns=2),
>       par.settings = par.settings)
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]

