Message-ID: <x21wq8kirn.fsf@turmalin.kubism.ku.dk>
Date: 2006-09-18T20:43:40Z
From: Peter Dalgaard
Subject: Legend frame error (PR#9236)
In-Reply-To: <20060918200846.2A60944243@slim.kubism.ku.dk>
tgibson at augustcouncil.com writes:
> Hello,
> The frame drawn around the legend appears to miscalculate when the
> x-axis decreases rather than increases. Pasted below is a simple
> testcase. When the x-axis decreases, the width of the legend frame
> appears to be calculated based on the length of the first item, rather
> than the maximum length of all items.
More likely, it is calculating the maximum of the endpoints, which
will of course be the one furthest to the left if the x axis is
reversed. (As reordering the legends would have shown you.)
The construction
if (is.null(text.width))
text.width <- max(strwidth(legend, units = "user", cex = cex))
else if (!is.numeric(text.width) || text.width < 0)
stop("'text.width' must be numeric, >= 0")
seems to be the culprit. max() should be min() in the reversed case.
And if I'm not mistaken, there's an additional issue: If the x axis is
reversed, an explicit text.width setting should in fact be negative.
--
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907