The following seems to work well, and I don't think it'll break anything. The only problem I see is if someone says xlim=c(min=9, max=0), which should give an error/warning message, but won't.
Michael --- plot.default= function (x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...) { localAxis <- function(..., col, bg, pch, cex, lty, lwd) Axis(...) localBox <- function(..., col, bg, pch, cex, lty, lwd) box(...) localWindow <- function(..., col, bg, pch, cex, lty, lwd) plot.window(...) localTitle <- function(..., col, bg, pch, cex, lty, lwd) title(...) xlabel <- if (!missing(x)) deparse(substitute(x)) ylabel <- if (!missing(y)) deparse(substitute(y)) xy <- xy.coords(x, y, xlabel, ylabel, log) xlab <- if (is.null(xlab)) xy$xlab else xlab ylab <- if (is.null(ylab)) xy$ylab else ylab xlim <- if (is.null(xlim)) range(xy$x[is.finite(xy$x)]) else if( length(xlim)==1 & names(xlim)=="min" ) { c(xlim,range(xy$x[is.finite(xy$x)])[2]) } else if( length(xlim)==1 & names(xlim)=="max" ) { c( range(xy$x[is.finite(xy$x)])[1], xlim) } else xlim ylim <- if (is.null(ylim)) range(xy$y[is.finite(xy$y)]) else if( length(ylim)==1 & names(ylim)=="min" ) { c( ylim,range(xy$y[is.finite(xy$y)])[2]) } else if( length(ylim)==1 & names(ylim)=="max" ) { c( range(xy$y[is.finite(xy$y)])[1], ylim) } else ylim dev.hold() on.exit(dev.flush()) plot.new() localWindow(xlim, ylim, log, asp, ...) panel.first plot.xy(xy, type, ...) panel.last if (axes) { localAxis(if (is.null(y)) xy$x else x, side = 1, ...) localAxis(if (is.null(y)) x else y, side = 2, ...) } if (frame.plot) localBox(...) if (ann) localTitle(main = main, sub = sub, xlab = xlab, ylab = ylab, ...) invisible() } -- View this message in context: http://r.789695.n4.nabble.com/I-wish-xlim-c-0-NA-would-work-How-about-I-send-you-a-patch-tp4562269p4589316.html Sent from the R devel mailing list archive at Nabble.com. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel