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