blob: 18e057396fb5654e19f816c6c82ac9036ff292cc [file] [log] [blame]
R version 3.6.2 Patched (2020-02-12 r77795) -- "Dark and Stormy Night"
Copyright (C) 2020 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.270 0.050 0.297