Consider the following lines of code: plot(function(x) sin(cos(x)*exp(-x/2)), from=-8,to=7,xlim=c(-5,5)) Uses integral points (integers from -5 to 5) to draw the plot, instead of the usual default of n= 101 "equally spaced points" (from ?plot.function). plot(function(x) sin(cos(x)*exp(-x/2)), from=-8,to=7,n=101,xlim=c(-5,5)) Gives the following error: Error in add && par("xlog") : invalid 'x' type in 'x && y' Any explanations? The following modification, in the plot.R by NOT passing 'y' to plot.function, seems to fix both of the above problems ! I am sure to be missing something! "plot2" <- function (x, y, ...) { if (is.null(attr(x, "class")) && is.function(x)) { nms <- names(list(...)) ## need to pass 'y' to plot.function() when positionally matched "????" if(missing(y)) # set to defaults {could use formals(plot.default)}: y <- { if (!"from" %in% nms) 0 else if (!"to" %in% nms) 1 else if (!"xlim" %in% nms) NULL } if ("ylab" %in% nms) plot.function(x, ...) else plot.function(x, ylab=paste(deparse(substitute(x)),"(x)"), ...) } else UseMethod("plot") } ------------------------------------------------------------------------------------------------------------------------------- version.string R version 2.4.1 (2006-12-18) platform i486-pc-gnu-linux