On May 24, 2011, at 11:42 PM, Gene Leynes wrote:

Peter,

Good idea!  (why didn't I think of that?)

If it stumped the r-list, I think there is probably a slight bug with the
plot formula.

Problems like this make me realize how amazingly full featured and
relatively bug free R is. A problem like this would never happen in Excel, because this level of functionality does not exist. However, if it did, it would probably never be fixed... and you could substitute "Excel" with "Any
commercial software".


plot(dat, panel.first=bgfun() ) # succeeds

So the problem is not with plot.data.frame.

So someplace in the processing of dots and the handoff to

do.call(funname, c(list(mf[[i]], y, ylab = yl,  xlab = xl), dots))

... where funname = "plot", the dot identities do not get honored. The 'plot" function is where it all started, but the first argument is now mf[[i]], and is that is now a numeric vector. So I think it gets handed off to plot.default, which sets panel.first to NULL.

--
David.

Gene


On Tue, May 24, 2011 at 3:13 AM, Peter Ehlers <ehl...@ucalgary.ca> wrote:

On 2011-05-23 16:54, Gene Leynes wrote:

I wrote a little function called bgfun that adds gridlines and a
background,
but it's not working with I plot using the formula.

I have some theories on what's happening, but even if my theory is right,
I
don't know how to fix it.

Someone have a straightforward silver bullet?


No silver bullet, but this seems to work:

plot(y ~ x, data=dat, type="n")
points(y ~ x, data=dat, panel.first=bgfun())

(I think that plot.formula may need a fix but
offhand I can't see whether that's easy or hard.)

Peter Ehlers


Thank you,

Gene



bgfun = function(color='honeydew2',linecolor='grey45', addgridlines=TRUE){
   tmp=par("usr")
   rect(tmp[1], tmp[3], tmp[2], tmp[4], col=color)
   if(addgridlines){
       ylimits=par()$usr[c(3,4)]
       abline(h=pretty(ylimits,10), lty=2, col=linecolor)
   }
}
dat = data.frame(x=1:10,y=1:10)

## Works
plot(dat$x, dat$y, panel.first=bgfun())

## Why doesn't this work?
plot(y ~ x, data=dat, panel.first=bgfun())

      [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to