I tried it with a simple example to make it easier to check the result and it does seem we need a panel function, pnl:
library(lattice) DF <- data.frame(x = 1:5, col = c(1:4, 1), g = c(1, 1, 2, 2, 2), pch = c(1:3, 2:1)) pnl <- function(x, y, subscripts, col, pch, ...) panel.stripplot(x, y, col = col[subscripts], pch = pch[subscripts], ...) stripplot(~ x | g, DF, col = DF$col, pch = DF$pch, panel = pnl) Using the same panel function, pnl, we can spread out resp into two different panels like this: all$resp <- as.factor(all$resp) # as before stripplot(~ index | resp, all, col = all$col, pch = all$sym, panel = pnl, layout = 1:2) On Sun, Jun 22, 2008 at 1:09 PM, Bryan Hanson <[EMAIL PROTECTED]> wrote: > Thanks Gabor, I'm getting closer. > > Is there a way to spread out resp values vertically for a given value of > index? In base graphics, stripchart does this with method = "stack". But > in lattice, stack = TRUE does something rather different, and I don't see a > combination of lattice arguments that does it like base graphics. > > Thanks, Bryan > > > On 6/22/08 12:48 PM, "Gabor Grothendieck" <[EMAIL PROTECTED]> wrote: > >> Actually I am not sure if my prior answer was correct. I think its ok >> with one panel but >> you might have to use a panel function is there are several. With one >> panel it seems >> ok: >> >> stripplot(~ index, all, col = all$col, pch = all$sym) >> >> On Sun, Jun 22, 2008 at 12:28 PM, Gabor Grothendieck >> <[EMAIL PROTECTED]> wrote: >>> Try this: >>> >>> library(lattice) >>> all$resp <- as.factor(all$resp) >>> stripplot(~ index | resp * yr, all, col = all$col, pch = all$sym, >>> layout = c(1, 4)) >>> >>> >>> On Sun, Jun 22, 2008 at 10:43 AM, Bryan Hanson <[EMAIL PROTECTED]> wrote: >>>> Below is a revised set of code that demonstrates my question a little more >>>> clearly, I hope. >>>> >>>> When plotting all the data (5th panel), col & sym don't seem to be passed >>>> correctly, as the (random) first value for col & sym are used for all >>>> points >>>> (run the code, then run it again, you'll see how the 5th panel changes >>>> depending upon col & sym for the first data point). The 5th panel should >>>> ideally be the "sum" of the 4 panels above, keeping col & sym intact. >>>> >>>> Also, I would rather have this in lattice or ggplot2, if anyone sees how to >>>> convert it. >>>> >>>> Thanks once again, several of you have made very useful suggestions off >>>> list. Bryan >>>> >>>> samples <- 100 # must be even >>>> index <- round(runif(samples, 1, 100)) # set up data >>>> resp <- rbinom(samples, 1, 0.5) >>>> yr <- rep(c("2005", "2006"), samples/2) >>>> all <- data.frame(index, resp, yr) >>>> all$sym <- ifelse(all$resp == 1, 1, 3) >>>> all$col <- ifelse(all$yr == 2005, "red", "blue") >>>> all$count <- rep(1, length(all$index)) >>>> all <- all[order(all$index, all$yr, all$resp),] # for easier inspection >>>> row.names(all) <- c(1:samples) # for easier inspection >>>> >>>> one <- all[(all$yr == 2005 & all$resp == 0),] # First 2005/0 at top >>>> two <- all[(all$yr == 2005 & all$resp == 1),] # Then 2005/1 >>>> three <- all[(all$yr == 2006 & all$resp == 0),] # Now 2006/0 >>>> four <- all[(all$yr == 2006 & all$resp == 1),] # Finally 2006/1 >>>> >>>> par(mfrow = c(5, 1)) >>>> par(plt = c(0.1, 0.9, 0.25, 0.75)) >>>> stripchart(one$index, method = "stack", ylim = c(0,10), xlim = c(1,100), >>>> col >>>> = one$col, pch = one$sym) >>>> mtext("2005/0", side = 3) >>>> stripchart(two$index, method = "stack", ylim = c(0,10), xlim = c(1,100), >>>> col >>>> = two$col, pch = two$sym) >>>> mtext("2005/1", side = 3) >>>> stripchart(three$index, method = "stack", ylim = c(0,10), xlim = c(1,100), >>>> col = three$col, pch = three$sym) >>>> mtext("2006/0", side = 3) >>>> stripchart(four$index, method = "stack", ylim = c(0,10), xlim = c(1,100), >>>> col = four$col, pch = four$sym) >>>> mtext("2006/1", side = 3) >>>> stripchart(all$index, method = "stack", ylim = c(0,10), xlim = c(1,100), >>>> col >>>> = all$col, pch = all$sym) >>>> mtext("col & sym always taken from 1st data point when all data is >>>> plotted!", side = 3) ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.