[R] Porbably bug in panel.abline
Bert Gunter
bgunter@4567 @end|ng |rom gm@||@com
Mon Jun 18 22:15:29 CEST 2018
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 <
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" <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 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 <sebastien.bihorel@
> cognigencorp.com> wrote:
>
>> 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
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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]]
More information about the R-help
mailing list