I am trying to plot a bunch of ROC areas for different datasets and different algorithms. I have three variables: "Scheme" which specifies the algorithm used, "Dataset" is the dataseet that the algorithm is being tested on, and "Area_under_ROC".
I am using the lattice library in R, with the following command:
dotplot(Scheme ~ Area_under_ROC | Dataset, data = simulationSummary, layout = c(4,6))
and this is what I get:
dotplot of Scheme vs. Area_under_ROC conditioned on Dataset
What I'd like to know is
- How can make the labels on the y-axis readable? Right now, they're all squeezed together.
- How can I re-arrange the panel in such a way that the datasets marked with "100" form the last column, but the other columns stay the same?
I'd very much appreciate any comments or pointers. Many Thanks!
Some ideas:
scale=list(y=list(cex=.6))
. An alternative would be to preserve uniform font size, but separate your output on several pages (this can be controlled withlayout=
), or, probably better, to show all data from the same dataset (A to F, hence 4 points for each algorithm) or by sample size (10 to 100, hence 6 points for each algorithm) with agroup=
option. I would personally create two factors,sample.size
anddataset.type
for that.Relevel your factor
Dataset
, so that the dataset you are interested appear wherelayout
will put them, or (better!) useindex.cond
to specify a particular arrangement for your 24 panels. E.g.,will arrange panels in sequential order, from bottom left to top right (
type1
in bottom left panel,type24
in top right panel), whilewill arrange panels in the reverse order. Just specify a
list
with expected panel locations.Here is an example of what I have in mind with Point 1 and the use of two factors instead of one. Let us generate another artificial dataset:
Additionally to chl answer after splitting
Dataset
type to Type and Size you could useuseOuterStrips
function from latticeExtra package.To get more space for labels you could "transpose" plot.
Or use vertical dotplot: