Prof Brian D Ripley <ripley@stats.ox.ac.uk> writes:
[I have abbreviated the subject as jitterbug has been having probems
with long subjects.]
The issue here is that one cannot mix log/non-log axes in the calls to
screen(), as the appropriate par() parameter is read-only, but the
meaning of yaxp depends on it. But beyond that you can't set
x/yaxp for log axes.
You should be able to do this: you can in the S original.
A simpler version:
plot (1:2, 1:2, log="y", main="1")
zz <- par("yaxp")
zz
[1] 1 2 -5
par(yaxp=zz)
Error in par(yaxp = zz) : invalid value specified for graphics parameter
"yaxp".
So you can't reset the yaxp parameter to what it is reported as!
[snip]
The code in main/par.c ignores the value of xlog (or ylog) when
setting xaxp (or yaxp). Right now you have in Specify (and Specify2):
... else if (streql(what, "xaxp")) {
value = coerceVector(value, REALSXP);
lengthCheck(what, value, 3);
naRealCheck(REAL(value)[0], what);
naRealCheck(REAL(value)[1], what);
posIntCheck((int) (REAL(value)[2]), what);
Shouldn't that be something like:
... else if (streql(what, "xaxp")) {
value = coerceVector(value, REALSXP);
lengthCheck(what, value, 3);
naRealCheck(REAL(value)[0], what);
naRealCheck(REAL(value)[1], what);
if (dd->gp.xlog)
logAxpCheck((int) (REAL(value)[2]), what);
else
posIntCheck((int) (REAL(value)[2]), what);
Where logAxpCheck is suitably defined as:
static void logAxpCheck(int x, char *s)
{
if (x == NA_INTEGER || x == 0 || x > 4)
par_error(s);
}
since only values < 0 or the values 1, 2, 3 are allowed?
Additional bug: the meaning of x/yaxp for log axes is not defined
in help(par).
excerpt from help(par):
xaxp: A vector of the form `c(x1, x2, n)' giving the coordinates
of the extreme tick marks and the number of intervals
between tick-marks.
Could you add:
The value of n must be positive for linear scale axes. For
logarithmic scale axes n must be either negative (then there
will be (1-n) ticks at a linear distance) or one of 1, 2, or
3 where n then indicates the number of ticks per decade.
similar for yaxp? What am I missing?
Regards,
-tom
mailto:tov@ece.cmu.edu (Tom Vogels) Tel: (412) 268-6638 FAX: -3204
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._