Соединение решетчатых графов в разных сетках - PullRequest
1 голос
/ 01 мая 2019

Решетка основана на сетке вселенной.Соединение панелей решетчатых графиков, размещенных на разных окнах просмотра, должно быть простым.Но кажется, что панели обрезают грань между ними.

Я хочу соединить большие точки следующих двух решетчатых графов.Но красная линия обрезается .Как я могу соединить обе точки?

Заранее спасибо!

library(grid)
library(lattice)

p1 <- xyplot(mpg ~ disp, mtcars,
             panel= function(...){
                 grid.points(300,20, default.units="native",size=unit(4,"mm"),pch=16)
                 panel.xyplot( ... )
             }
             )
##p1

grid.newpage()
vlay <- viewport(layout=grid.layout(nrow=2, ncol=2),name="ejjoin")
pushViewport(vlay)
vpfig1 <- viewport(layout.pos.row = 1, layout.pos.col = 1:2,name = "vp11")
vpfig2 <- viewport(layout.pos.row = 2, layout.pos.col = 2,name = "vp12")
pushViewport(vpfig1)
print(p1,newpage=FALSE,prefix="figrow1")
upViewport() ##
pushViewport(vpfig2)
print(p1,newpage=FALSE,prefix="figrow2")
upViewport() ##


## Connect the points
##grid.ls(viewports=TRUE, grobs=FALSE)
seekViewport("figrow1.panel.1.1.vp")
grid.move.to(unit(300,"native"), unit(20, "native"))
seekViewport("figrow2.panel.1.1.vp")
grid.line.to(unit(300,"native"), unit(20, "native"),arrow=arrow(),gp=gpar(col="red",lwd=4))
upViewport() ##

1 Ответ

0 голосов
/ 01 мая 2019

Решено! Я должен просто выбрать другой видовой экран. Решение Спасибо!

grid.ls(viewports=TRUE, grobs=FALSE, fullnames=TRUE)
seekViewport("figrow1.panel.1.1.vp")
grid.move.to(unit(300,"native"), unit(20, "native"))
##seekViewport("figrow2.panel.1.1.vp") ## Wrong!
seekViewport("figrow2.panel.1.1.off.vp")
grid.line.to(unit(300,"native"), unit(20, "native"),arrow=arrow(),gp=gpar(col="red",lwd=4))
upViewport() ##

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...