On 9/13/07, Andrew Smith <andrewsmith81 at gmail.com>
wrote:> I would like to make what seems like a simple addition to a display
> constructed from a call to levelplot -- I want to add a text label
> (which will, in general, depend on the object being plotted, and so
> cannot be hardcoded) to the origin, which has special significance in
> my problem. The x and y axes always have range (0,1) in my plots, so
> by "origin" I always mean the lower left corner of the plot.
Now, I
> can add text to the inside of the panel using panel.text, but this
> clutters the plot and I find it unsatisfactory. What I would like is
> to add the label outside of the panel, just below and to the left of
> the lower left corner of the panel. I've unsuccessfully tried to do
> this using the xscale.components argument, and I'm having trouble
> figuring out which other arguments or functions might be helpful. I
> would greatly appreciate any advice!
You can either turn off clipping in panels with
trellis.par.set(clip = list(panel = "off"))
or use the axis function:
levelplot(volcano,
axis = function(side, ...) {
axis.default(side, ...)
if (side == "bottom")
panel.text(0, 0, lab = "label", adj = c(1, 1))
})
(axis gets called once for every side in every panel, so you have to
make sure you do it only for one side.)
-Deepayan