Yes, with the HH package. require(HH) dotplot(sample(0:9, 50, replace=TRUE), panel=panel.dotplot.tb) dotplot(rep(1:5,10) ~ sample(0:9, 50, replace=TRUE), panel=panel.dotplot.tb) dotplot(rep(1:5,10) ~ sample(0:9, 50, replace=TRUE) | rep(c(1,1,1,2,2),10), panel=panel.dotplot.tb) dotplot(~ sample(0:9, 50, replace=TRUE) | rep(c(1,1,1,2,2),10), panel=panel.dotplot.tb)