Yes, this one is a bug in CreateAtVector, plot.c.
It already has the lines:
/* Debugging: When does the following happen... ? */
if (umin umax)
warning(CreateAtVector \log\(from axis()):
usr[0] = %g %g = usr[1] !, umin, umax);
And now we know that it happens if (and only if?) the logarithmic
scale is not very small (i.e. axp[2] 0, this is equal to R's
par(yaxp)[3] in your example) and the axis are reversed (umin umax).
I'll try to provide a fix which should be possible by reversing
arguments axp and usr in this case and returning a reversed at ...
Uwe Ligges
[EMAIL PROTECTED] wrote:
Full_Name: Christian Marquardt
Version: 2.1.0
OS: Linux (Redhat 9)
Submission from: (NULL) (151.170.240.10)
Following the advice of a reader of R-help, I would now like to submit this
as a
bug report:
Say we have
x = seq(1,3, by = 0.01)
y = exp(x)
Plotting and reversing linear axis is fine
plot(x,y)
plot(x,y, ylim = c(30,1))
as is a usual log-plot:
plot(x,y, log = y, ylim = c(1,30))
However,
plot(x,y, log = y, ylim = c(30,1))
fails with
Error in axis(2, ...) : log - axis(), 'at' creation, _SMALL_ range:
invalid {xy}axp or par;
axp[0]= 10, usr[0:1]=(34.3721,0.872801)
In addition: Warning message:
CreateAtVector log(from axis()): usr[0] = 34.3721 0.872801 = usr[1] !
According to Petr Pikal petr.pikal -at- precheza.cz, replacing the ylim
argument by ylim = c(30,1.2) helps in the above example; but in my real world
applications, it's actually difficult to find a working value for ylim.
I hope this is useful,
Christian.
__
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
__
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel