Dear R-Users,

I would like to have the opinion of the list on the following matter. I have this generic function that creates multiple lattice scatterplots per page based upon different subsets of the same dataset. The use of different line/point colors/symbols in each plot is based upon a 'group' variable', which is the same for all plots. My goal is to create a main legend per page: 1- because the 'group' variable' is the same for all plots, one legend per page is sufficient; 2- because the subset of data used for a particular scatterplot does not have to contain all unique elements of the group variable in the whole dataset, the graphical settings need to be adjusted for each plot based upon a general list of settings created from the whole dataset prior to the creation of the plots; 3- for the same reason, I cannot use the key argument of xyplot to create a legend from the first scatterplot.

Another piece of info is that this generic function could be used to create very different categories of graphs, which each require a different legend design.

At the moment, I am creating the legend based upon the general graph settings and the category of plot. Prior to the creation of the graphs, I store grid objects (text, point, line, or rectangle) into a list, with also some information about the number of lines that the legend will use, and the category of the plot. After the plots are printed to the device, I open a viewport at the bottom of my page and split it according to the type of the graph and the number of lines it needs. Finally, I just loop through the content of the list and draw the grid objects.

Overall, this is all fine but a bit 'brute force'. Also the final 'open-a-viewport-and-draw-inside' step is a big messy code within a generic graph function, because one specific piece of code is needed per category of plot, and because of additional subtleties (conditional argument, etc... )

Based upon the behavior of the xyplot function, I understand that it would be possible to store the fully formatted legend directly at its creation and then just 'print' the stored object within my legend viewport. Could anybody advise me on the process to follow to accomplish that or maybe a few functions to look at?

As always, any help would be greatly appreciated.

Sebastien

______________________________________________
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.

Reply via email to