Some ideas:
- Use a smaller font size for the Y axis labels, for example.
scale=list(y=list(cex=.6)) . An alternative would be to maintain a uniform font size, but a separate output on several pages (this can be controlled using layout= ) or, perhaps, it is better to show all the data from one data set (from A to F, therefore, 4 points for each algorithm) or size samples (from 10 to 100, therefore, 6 points for each algorithm) with the option group= . I personally would create two factors: sample.size and dataset.type for this. Free your Dataset factor, so the dataset you are interested in appears where layout will place them, or (better!) Use index.cond to specify the specific layout for your 24 panels. For instance,
dfrm <- data.frame(algo=gl(11, 1, 11*24, labels=paste("algo", 1:11, sep="")), type=gl(24, 11, 11*24, labels=paste("type", 1:24, sep="")), roc=runif(11*24)) p <- dotplot(algo ~ roc | type, dfrm, layout=c(4,6), scale=list(y=list(cex=.4)))
arrange the panels in a sequential order, from left to right ( type1 in the lower left panel, type24 in the upper right panel), and
update(p, index.cond=list(24:1))
arranges panels in reverse order. Just list with the expected panel locations.
Here is an example of what I mean with Point 1, and the use of two factors instead of one. Let's create another artificial dataset:
dfrm <- data.frame(algo=gl(11, 1, 11*24, labels=paste("algo", 1:11, sep="")), dataset=gl(6, 11, 11*24, labels=LETTERS[1:6]), ssize=gl(4, 11*6, 11*24, labels=c(10,25,50,100)), roc=runif(11*24)) xtabs(~ dataset + ssize, dfrm) # to check allocation of factor levels dotplot(algo ~ roc | dataset, data=dfrm, group=ssize, type="l", auto.key=list(space="top", column=4, cex=.8, title="Sample size", cex.title=1, lines=TRUE, points=FALSE))

source share