contour line labels in trellis contourplot
On Sun, 22 Jul 2012, Martin Ivanov wrote:
Hello, In the classical function "contour" labels are drawn so that each contour line is broken at the place of the label, so that the label does not overlap the line. In the trellis contourplot the labels are placed beside or over the line, controlled by the label.style parameter, but I could not find an option that would place the labels just as in the classical contour: breaking the contour line to make place for the label.
This would be so much easier if you did give a working example. Please
always do so.
library(sp)
library(sp)
data(meuse.grid)
coordinates(meuse.grid) <- c("x", "y")
gridded(meuse.grid) <- TRUE
proj4string(meuse.grid) <- CRS("+init=epsg:28992")
spplot(meuse.grid, "dist", col.regions=bpy.colors(20))
library(maptools)
lns <- ContourLines2SLDF(contourLines(
as.image.SpatialGridDataFrame(meuse.grid["dist"]),
nlevels=4), proj4string=CRS(proj4string(meuse.grid)))
spplot(meuse.grid, "dist", col.regions=bpy.colors(20),
sp.layout=list("sp.lines", lns, lwd=2, col="grey", lty=2))
SLMP <- SpatialLinesMidPoints(as(lns, "SpatialLines"))
# here there is only one Line object per Lines object, so this works
spplot(meuse.grid, "dist", col.regions=bpy.colors(20),
sp.layout=list(list("sp.lines", lns, lwd=2, col="grey", lty=2),
list("sp.text", coordinates(SLMP), levels(lns$level), col="grey")))
# in other cases more care will be needed to assign multiple labels to
# Lines objects.
The contour and contourLines functions do not report label placing points.
You may extend this to add a background behind the labels if you like. The
alternative with latticeExtra ought also to be tried.
Roger
Have You got any ideas how breaking the contours to make place for the labels could be achieved in a trellis contourplot? Best regards, Martin
Roger Bivand Department of Economics, NHH Norwegian School of Economics, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 e-mail: Roger.Bivand at nhh.no