I hope it's OK to post a bug report, and a possible patch, on this list.
Introduction
======
The split.screen() docs suggest that users should not return to a screen
after it has been drawn, and that curious errors may result from doing so.
This is clear from the test file I put below. However, I have found that
this test file will work properly, with a tiny change to the split.screen
code. I am posting this here in case it might help others. (Certainly, I
make no claim that this solves a general problem with split.screen, but baby
steps are steps, nonetheless.)
The test file draws red lines in the wrong place, unless f=0.5. But it
works OK after the split.screen code is edited as given in the last section
of this email.
Test file
====
close.screen(all.screens=TRUE)
f <- 0.7 # works only if f=0.5
split.screen(matrix(c(0,f,0,1, f,1,0,1), nrow=2, byrow=TRUE))
screen(1)
plot(1:10, 1:10)
screen(2)
plot(1:3, 1:3)
screen(1,FALSE)
abline(h=6,col='red')
abline(v=6,col='red')
Code change
=======
Near the start of src/library/graphics/R/screen.R edit the assign() to look
as follows. The addition solves the problem of the test file, and the
deletion solves a problem in building packages that use split.screen().
assign("par.list",
c("xlog","ylog",
"adj", "bty", "cex", "col",
"crt", "err", "font", "lab",
"las", "lty", "lwd", "mar",
"mex",
"fin", ## added
## "mfg", ## deleted
"mgp", "pch",
"pty", "smo", "srt", "tck",
"usr",
"xaxp", "xaxs", "xaxt", "xpd",
"yaxp", "yaxs", "yaxt", "fig"),
envir=.oceSSenv)
--
View this message in context:
http://www.nabble.com/split.screen-bug-and-patch-tp22884064p22884064.html
Sent from the R devel mailing list archive at Nabble.com.