On 22/11/2009 5:35 PM, Duncan Murdoch wrote:
On 22/11/2009 5:21 PM, David Winsemius wrote:
On Nov 22, 2009, at 4:57 PM, Peter Ehlers wrote:
Hi Ted,
This won't solve your problem, but a small improvement might
be to place the labels over the lines rather than the other
way around. It will definitely avoid putting red lines over
black ones:
x <- -6:16
z <- outer(x,x)
contour(z, labels="", col=2)
contour(z, lty=0, labcex=1, add=TRUE)
I played around a bit with you example, and can get almost the desired
color and lack of cutting through labels. There is the possibility of
plotting empty labels that create a space in the curves for the later
labels-without-lines overlay:
x <- -6:16
z <- outer(x,x)
contour(z, labels=" ", col=2, labcex=1.5, drawlabels=TRUE)
contour(z, lty=0, labcex=1.5, add=TRUE)
That's a nice solution. You could probably do a bit better in a couple
of steps: 1st, figure out what the level labels will be (by default,
pretty(range(z, finite=TRUE), 10) ), then compute an equivalent number
of spaces, e.g.
levels <- pretty(range(z, finite=TRUE), 10)
strwidth(levels, cex=1.5) / strwidth(" ", cex=0.5)
Then use the appropriate number of spaces as the labels in the first
plot, and the numbers in the second one. Do we have a simple function
to take input like c(10, 12) and produce two character strings
containing 10 and 12 spaces?
Here's a little implementation. It didn't work using different cex
values for the spaces and the levels, but this seems okay:
x <- -6:16
z <- outer(x,x)
levels <- pretty(range(z, finite=TRUE), 10)
plot.new() # Might want a throwaway plot instead
reps <- round(strwidth(levels, cex=1.5) / strwidth(" ", cex=1.5))
spaces <- sapply(reps, function(x) paste(rep(" ", round(x)), collapse=""))
contour(z, labels=spaces, levels=levels, col=2, labcex=1.5, drawlabels=TRUE)
contour(z, lty=0, labcex=1.5, add=TRUE)
Duncan Murdoch
______________________________________________
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.