[R] Porbably bug in panel.abline

Sebastien Bihorel @eb@@t|en@b|hore| @end|ng |rom cogn|gencorp@com
Tue Jun 19 04:16:04 CEST 2018


Paul Murrell posted some comments on [ https://github.com/deepayan/lattice/issues/8 | https://github.com/deepayan/lattice/issues/8 ]

----- Original Message -----
From: "Bert Gunter" <bgunter.4567 using gmail.com>
To: "Sebastien Bihorel" <sebastien.bihorel using cognigencorp.com>
Cc: "R-help" <r-help using r-project.org>
Sent: Monday, June 18, 2018 4:15:29 PM
Subject: Re: [R] Porbably bug in panel.abline

hmmm... 
Youre right: something subtle is occurring. 

Here is a simpler reproducible example that illustrates the issue: 

a <- 10 
y <- x <- c(0,a) 
for(k in c(-1,0,1)){ 
print(xyplot( 
y~x, 
type = 'l', col="blue", 
panel = function(x,y,...){ 
panel.xyplot(x,y,...) 
panel.abline(c(a+k,-1), col="red") 
} 
))} 

Somehow, the "drawable limits" seem to exclude the corners of the plotting rectangle. 

I would guess that this has something to do with how the plotting viewport is clipped, but that's just a guess. 

Cheers, 
Bert 

Bert Gunter 

"The trouble with having an open mind is that people keep coming along and sticking things into it." 
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) 

On Mon, Jun 18, 2018 at 12:05 PM, Sebastien Bihorel < [ mailto:sebastien.bihorel using cognigencorp.com | sebastien.bihorel using cognigencorp.com ] > wrote: 




No, the intercept a^2 f the abline is exactly the upper limit of the data, so it is in the range. 


From: "Bert Gunter" < [ mailto:bgunter.4567 using gmail.com | bgunter.4567 using gmail.com ] > 
To: "Sebastien Bihorel" < [ mailto:sebastien.bihorel using cognigencorp.com | sebastien.bihorel using cognigencorp.com ] > 
Cc: "R-help" < [ mailto:r-help using r-project.org | r-help using r-project.org ] > 
Sent: Monday, June 18, 2018 2:28:21 PM 
Subject: Re: [R] Porbably bug in panel.abline 

Note that: 

xyplot( 
y~x, 
data = data, 
type = 'l', col="blue", 
panel = function(x,y,...){ 
panel.xyplot(x,y,...) 
panel.abline(c(a^2-1,-1), col="red") 
} 
) 

works. The problem is a^2 is just above the "drawable" y axis limit (it is the intercept of the line at x=0 with slope -1, of course). This also explains all your other comments. 

Cheers, 
Bert 



-- 

Bert Gunter 

"The trouble with having an open mind is that people keep coming along and sticking things into it." 
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) 

On Mon, Jun 18, 2018 at 11:01 AM, Sebastien Bihorel < [ mailto:sebastien.bihorel using cognigencorp.com | sebastien.bihorel using cognigencorp.com ] > wrote: 

BQ_BEGIN
Hi, 

I recently encountered situations in which reference lines are not drawn with the lattice panel.abline function. Please, consider the following example code: 


require(lattice) 

a <- runif(1,0,100) 
data <- data.frame(x=c(0,a^2), y=c(0,a^2)) 

xyplot( 
y~x, 
data = data, 
type = 'l', 
panel = function(x,y,...){ 
panel.xyplot(x,y,...) 
panel.abline(c(a^2,-1.0), col=2) 
} 
) 

Adding noise (eg panel.abline(c(a^2+0.01,-1.0), col=2)) or adding some axis limits seems to bypass the problem. 

The problem also happens for different data source and abline coefficients: 
data <- data.frame(x=c(18,81), y=c(18,81)) 
... 
panel.abline(c(99,-1.0), col=2) 


Thank you in advance for your feedback. 

Sebastien 

PS: the problem was also posted at [ https://github.com/deepayan/lattice/issues/8 | https://github.com/deepayan/lattice/issues/8 ] 

______________________________________________ 
[ mailto:R-help using r-project.org | R-help using r-project.org ] mailing list -- To UNSUBSCRIBE and more, see 
[ https://stat.ethz.ch/mailman/listinfo/r-help | https://stat.ethz.ch/mailman/listinfo/r-help ] 
PLEASE do read the posting guide [ http://www.r-project.org/posting-guide.html | http://www.R-project.org/posting-guide.html ] 
and provide commented, minimal, self-contained, reproducible code. 





BQ_END




More information about the R-help mailing list