unexpected behaviour of 'curve' function
On 26 Nov 2004 12:27:35 +0100, Peter Dalgaard
<p.dalgaard at biostat.ku.dk> wrote:
"Guazzetti Stefano" <Stefano.Guazzetti at ausl.re.it> writes:
Dear all, curve(x^3*(1-x)^7, from = 0, to = 1) works as expected but, omitting the "xlim" or the "to" and "from" arguments and calling "curve" more than once: par(mfrow = c(2,2)) for (i in 1:4) curve(x^3*(1-x)^7) gives an expected (al least to me) result. Note also that a "pu" object is returned by curve
pu
[1] -0.1802445 1.1802445 The behaviour is reproducible with both R 2.0.0 and R 2.0.1 I can see that a promise of evaluation of "pu" is made within curve but I cannot understand completely what happens.
I think the upshot is just that it is taking the "from" and "to" from
par("usr") from the previous plot and every time you do so, it expands
a little (about 4%).
It's not documented what "from" and "to" will be when add=FALSE, so this isn't strictly speaking a bug, but I'd say it's undesirable behaviour. I'd much rather see from=0 and to=1 in this case.
Notice that it does not happen if you do this: par(mfrow = c(2,2), xaxs="i") for (i in 1:4) curve(x^3*(1-x)^7) Having pu end up in the global environment looks like a bug in delay() but I don't think it has any influence on this particular effect.
That's a pretty serious bug in delay(). It's been there at least since 1.9.1. Duncan Murdoch