On 7/25/07, Kevin Wright <[EMAIL PROTECTED]> wrote: > When I create a dotplot in lattice, I frequently observe overplotting > of the labels along the vertical axis. On my screen, this illustrates > overplotting of the letters: > > windows() > reps=6 > dat=data.frame(let=rep(letters,each=reps), grp=rep(1:reps, 26), > y=runif(26*reps)) > dotplot(let~y|grp, dat) > > Is there a way to automatically scale the labels so that they are not > over-plotted?
Not that I can think of. > I currently do something like this: > Calculate or guess the number of panel rows: NumPanelRows > cexLab <- min(1, .9*par()$pin[2]/ > (nlevels(dat$let)*NumPanelRows*strheight("A",units="in"))) > dotplot(..., scales=list(y=list(cex=cexLab)) > > Is there an easier way? > > Is there a function that I can call which calculates the layout of the > panels that will be used in the dotplot? Not really. The eventual layout is calculated inside print.trellis as follows (where 'x' is the "trellis" object being plotted): panel.layout <- compute.layout(x$layout, dim(x), skip = x$skip) [...] if (panel.layout[1] == 0) { ddim <- par("din") device.aspect <- ddim[2] / ddim[1] panel.aspect <- panel.height[[1]] / panel.width[[1]] plots.per.page <- panel.layout[2] m <- max (1, round(sqrt(panel.layout[2] * device.aspect / panel.aspect))) n <- ceiling(plots.per.page/m) m <- ceiling(plots.per.page/n) panel.layout[1] <- n panel.layout[2] <- m } -Deepayan ______________________________________________ R-help@stat.math.ethz.ch 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.