344 lines
8.2 KiB
Plaintext
344 lines
8.2 KiB
Plaintext
|
|
||
|
R Under development (unstable) (2022-03-19 r81942) -- "Unsuffered Consequences"
|
||
|
Copyright (C) 2022 The R Foundation for Statistical Computing
|
||
|
Platform: x86_64-pc-linux-gnu (64-bit)
|
||
|
|
||
|
R is free software and comes with ABSOLUTELY NO WARRANTY.
|
||
|
You are welcome to redistribute it under certain conditions.
|
||
|
Type 'license()' or 'licence()' for distribution details.
|
||
|
|
||
|
R is a collaborative project with many contributors.
|
||
|
Type 'contributors()' for more information and
|
||
|
'citation()' on how to cite R or R packages in publications.
|
||
|
|
||
|
Type 'demo()' for some demos, 'help()' for on-line help, or
|
||
|
'help.start()' for an HTML browser interface to help.
|
||
|
Type 'q()' to quit R.
|
||
|
|
||
|
> library(grid)
|
||
|
>
|
||
|
> # Test hole in DL (deleted grob)
|
||
|
> grid.lines(name="foo")
|
||
|
> grid.lines(x=1:0, name="foo2")
|
||
|
> grid.ls()
|
||
|
foo
|
||
|
foo2
|
||
|
> grid.remove("foo")
|
||
|
> grid.ls()
|
||
|
foo2
|
||
|
> # New blank page
|
||
|
> grid.newpage()
|
||
|
>
|
||
|
>
|
||
|
> #######
|
||
|
> # GROBS
|
||
|
> #######
|
||
|
> # Plain grob
|
||
|
> grid.ls(grob(name="g1"))
|
||
|
g1
|
||
|
> # gList
|
||
|
> grid.ls(gList(grob(name="gl1"), grob(name="gl2")))
|
||
|
gl1
|
||
|
gl2
|
||
|
> # gTree
|
||
|
> grid.ls(gTree(children=gList(grob(name="child")),
|
||
|
+ name="parent"))
|
||
|
parent
|
||
|
child
|
||
|
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child1")),
|
||
|
+ name="parent"))
|
||
|
parent
|
||
|
child1
|
||
|
child1
|
||
|
>
|
||
|
> ###########
|
||
|
> # VIEWPORTS
|
||
|
> ###########
|
||
|
> # Plain viewport
|
||
|
> grid.ls(viewport(name="vp1"),
|
||
|
+ view=TRUE)
|
||
|
vp1
|
||
|
> # vpList
|
||
|
> grid.ls(vpList(viewport(name="vpl1")),
|
||
|
+ view=TRUE)
|
||
|
vpl1
|
||
|
> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2")),
|
||
|
+ view=TRUE)
|
||
|
vpl1
|
||
|
1
|
||
|
vpl2
|
||
|
> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2"),
|
||
|
+ viewport(name="vpl3")),
|
||
|
+ view=TRUE)
|
||
|
vpl1
|
||
|
1
|
||
|
vpl2
|
||
|
1
|
||
|
vpl3
|
||
|
> # vpStack
|
||
|
> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2")),
|
||
|
+ view=TRUE)
|
||
|
vps1
|
||
|
vps2
|
||
|
> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2"),
|
||
|
+ viewport(name="vps3")),
|
||
|
+ view=TRUE)
|
||
|
vps1
|
||
|
vps2
|
||
|
vps3
|
||
|
> # vpTrees
|
||
|
> grid.ls(vpTree(viewport(name="parentvp"), vpList(viewport(name="childvp"))),
|
||
|
+ view=TRUE)
|
||
|
parentvp
|
||
|
childvp
|
||
|
> grid.ls(vpTree(viewport(name="parentvp"),
|
||
|
+ vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
|
||
|
+ view=TRUE)
|
||
|
parentvp
|
||
|
cvp1
|
||
|
1
|
||
|
cvp2
|
||
|
> # vpPaths
|
||
|
> grid.ls(vpPath("A"),
|
||
|
+ view=TRUE)
|
||
|
A
|
||
|
> grid.ls(vpPath("A", "B"),
|
||
|
+ view=TRUE)
|
||
|
A
|
||
|
B
|
||
|
> grid.ls(vpPath("A", "B", "C"),
|
||
|
+ view=TRUE)
|
||
|
A
|
||
|
B
|
||
|
C
|
||
|
>
|
||
|
> ##########
|
||
|
> # MIXTURES
|
||
|
> ##########
|
||
|
> # grob with vp viewport
|
||
|
> g1 <- grob(vp=viewport(name="gvp"), name="g1")
|
||
|
> grid.ls(g1, view=TRUE, full=TRUE)
|
||
|
viewport[gvp]
|
||
|
grob[g1]
|
||
|
upViewport[1]
|
||
|
> grid.ls(g1, view=TRUE, full=TRUE, grob=FALSE)
|
||
|
viewport[gvp]
|
||
|
upViewport[1]
|
||
|
> # grob with vp vpList
|
||
|
> grid.ls(grob(vp=vpList(viewport(name="vpl")), name="g1"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
viewport[vpl]
|
||
|
grob[g1]
|
||
|
upViewport[1]
|
||
|
> grid.ls(grob(vp=vpList(viewport(name="vpl1"), viewport(name="vpl2")),
|
||
|
+ name="g1"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
viewport[vpl1]
|
||
|
upViewport[1]
|
||
|
viewport[vpl2]
|
||
|
grob[g1]
|
||
|
upViewport[1]
|
||
|
> # grob with vp vpStack
|
||
|
> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2")),
|
||
|
+ name="g1"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
viewport[vps1]
|
||
|
viewport[vps2]
|
||
|
grob[g1]
|
||
|
upViewport[2]
|
||
|
> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2"),
|
||
|
+ viewport(name="vps3")),
|
||
|
+ name="g1"),
|
||
|
+ view=TRUE)
|
||
|
vps1
|
||
|
vps2
|
||
|
vps3
|
||
|
g1
|
||
|
3
|
||
|
> # grob with vp vpTree
|
||
|
> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
|
||
|
+ vpList(viewport(name="cvp"))),
|
||
|
+ name="g1"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
viewport[parentvp]
|
||
|
viewport[cvp]
|
||
|
grob[g1]
|
||
|
upViewport[2]
|
||
|
> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
|
||
|
+ vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
|
||
|
+ name="g1"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
viewport[parentvp]
|
||
|
viewport[cvp1]
|
||
|
upViewport[1]
|
||
|
viewport[cvp2]
|
||
|
grob[g1]
|
||
|
upViewport[2]
|
||
|
> # gTree with vp viewport
|
||
|
> # and child grob with vp viewport
|
||
|
> grid.ls(gTree(children=gList(grob(vp=viewport(name="childvp"), name="cg1"),
|
||
|
+ grob(name="cg2")),
|
||
|
+ name="parent",
|
||
|
+ vp=viewport(name="parentvp")),
|
||
|
+ view=TRUE)
|
||
|
parentvp
|
||
|
parent
|
||
|
childvp
|
||
|
cg1
|
||
|
1
|
||
|
cg2
|
||
|
1
|
||
|
> # gTree with childrenvp viewport
|
||
|
> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[gtree]
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
|
||
|
+ view=TRUE, full=TRUE, grob=FALSE)
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
> grid.ls(gTree(children=gList(grob(name="child")),
|
||
|
+ name="parent",
|
||
|
+ childrenvp=viewport(name="vp")),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[parent]
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
grob[child]
|
||
|
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
|
||
|
+ name="parent",
|
||
|
+ childrenvp=viewport(name="vp")),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[parent]
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
grob[child1]
|
||
|
grob[child2]
|
||
|
> grid.ls(gTree(children=gList(grob(name="child")),
|
||
|
+ childrenvp=viewport(name="vp"),
|
||
|
+ name="parent"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[parent]
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
grob[child]
|
||
|
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
|
||
|
+ name="parent",
|
||
|
+ childrenvp=viewport(name="vp")),
|
||
|
+ view=TRUE, full=TRUE, grob=FALSE)
|
||
|
viewport[vp]
|
||
|
upViewport[1]
|
||
|
> # gTree with childrenvp vpTree
|
||
|
> grid.ls(gTree(childrenvp=vpTree(parent=viewport(name="vp1"),
|
||
|
+ children=vpList(viewport(name="vp2"))),
|
||
|
+ name="gtree"),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[gtree]
|
||
|
viewport[vp1]
|
||
|
viewport[vp2]
|
||
|
upViewport[2]
|
||
|
> grid.ls(gTree(children=gList(grob(name="child")),
|
||
|
+ name="parent",
|
||
|
+ childrenvp=vpTree(parent=viewport(name="vp1"),
|
||
|
+ children=vpList(viewport(name="vp2")))),
|
||
|
+ view=TRUE, full=TRUE)
|
||
|
gTree[parent]
|
||
|
viewport[vp1]
|
||
|
viewport[vp2]
|
||
|
upViewport[2]
|
||
|
grob[child]
|
||
|
> # gTree with childrenvp vpTree
|
||
|
> # and child grob with vp vpPath
|
||
|
> # A gTree, called "parent", with childrenvp vpTree (vp2 within vp1)
|
||
|
> # and child grob, called "child", with vp vpPath (down to vp2)
|
||
|
> sampleGTree <- gTree(name="parent",
|
||
|
+ children=gList(grob(name="child", vp="vp1::vp2")),
|
||
|
+ childrenvp=vpTree(parent=viewport(name="vp1"),
|
||
|
+ children=vpList(viewport(name="vp2"))))
|
||
|
> grid.ls(sampleGTree)
|
||
|
parent
|
||
|
child
|
||
|
> # Show viewports too
|
||
|
> grid.ls(sampleGTree, view=TRUE)
|
||
|
parent
|
||
|
vp1
|
||
|
vp2
|
||
|
2
|
||
|
vp1
|
||
|
vp2
|
||
|
child
|
||
|
2
|
||
|
> # Only show viewports
|
||
|
> grid.ls(sampleGTree, view=TRUE, grob=FALSE)
|
||
|
vp1
|
||
|
vp2
|
||
|
2
|
||
|
vp1
|
||
|
vp2
|
||
|
2
|
||
|
> # Alternate displays
|
||
|
> # nested listing, custom indent
|
||
|
> grid.ls(sampleGTree, view=TRUE, print=nestedListing, gindent="--")
|
||
|
parent
|
||
|
--vp1
|
||
|
----vp2
|
||
|
------2
|
||
|
--vp1
|
||
|
----vp2
|
||
|
------child
|
||
|
------2
|
||
|
> # path listing
|
||
|
> grid.ls(sampleGTree, view=TRUE, print=pathListing)
|
||
|
| parent
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2::2
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2 | parent::child
|
||
|
vp1::vp2::2
|
||
|
> # path listing, without grobs aligned
|
||
|
> grid.ls(sampleGTree, view=TRUE, print=pathListing, gAlign=FALSE)
|
||
|
| parent
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2::2
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2 | parent::child
|
||
|
vp1::vp2::2
|
||
|
> # grob path listing
|
||
|
> grid.ls(sampleGTree, view=TRUE, print=grobPathListing)
|
||
|
| parent
|
||
|
vp1::vp2 | parent::child
|
||
|
> # path listing, grobs only
|
||
|
> grid.ls(sampleGTree, print=pathListing)
|
||
|
| parent
|
||
|
| parent::child
|
||
|
> # path listing, viewports only
|
||
|
> grid.ls(sampleGTree, view=TRUE, grob=FALSE, print=pathListing)
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2::2
|
||
|
vp1
|
||
|
vp1::vp2
|
||
|
vp1::vp2::2
|
||
|
> # raw flat listing
|
||
|
> str(grid.ls(sampleGTree, view=TRUE, print=FALSE))
|
||
|
List of 6
|
||
|
$ name : chr [1:8] "parent" "vp1" "vp2" "2" ...
|
||
|
$ gDepth : num [1:8] 0 1 1 1 1 1 1 1
|
||
|
$ vpDepth: num [1:8] 0 0 1 2 0 1 2 2
|
||
|
$ gPath : chr [1:8] "" "parent" "parent" "parent" ...
|
||
|
$ vpPath : chr [1:8] "" "" "vp1" "vp1::vp2" ...
|
||
|
$ type : chr [1:8] "gTreeListing" "vpListing" "vpListing" "vpUpListing" ...
|
||
|
- attr(*, "class")= chr "flatGridListing"
|
||
|
>
|
||
|
>
|
||
|
>
|
||
|
>
|
||
|
> proc.time()
|
||
|
user system elapsed
|
||
|
0.310 0.053 0.349
|