The R Project SVN R

Rev

Rev 81048 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
41993 murrell 1
 
81944 ripley 2
R Under development (unstable) (2022-03-19 r81942) -- "Unsuffered Consequences"
3
Copyright (C) 2022 The R Foundation for Statistical Computing
68809 ripley 4
Platform: x86_64-pc-linux-gnu (64-bit)
41993 murrell 5
 
6
R is free software and comes with ABSOLUTELY NO WARRANTY.
7
You are welcome to redistribute it under certain conditions.
8
Type 'license()' or 'licence()' for distribution details.
9
 
10
R is a collaborative project with many contributors.
11
Type 'contributors()' for more information and
12
'citation()' on how to cite R or R packages in publications.
13
 
14
Type 'demo()' for some demos, 'help()' for on-line help, or
15
'help.start()' for an HTML browser interface to help.
16
Type 'q()' to quit R.
17
 
18
> library(grid)
19
> 
46139 murrell 20
> # Test hole in DL (deleted grob)
21
> grid.lines(name="foo")
22
> grid.lines(x=1:0, name="foo2")
23
> grid.ls()
24
foo
25
foo2
26
> grid.remove("foo")
27
> grid.ls()
28
foo2
29
> # New blank page
30
> grid.newpage()
41993 murrell 31
> 
46139 murrell 32
> 
41993 murrell 33
> #######
34
> # GROBS
35
> #######
36
> # Plain grob
37
> grid.ls(grob(name="g1"))
38
g1
39
> # gList
40
> grid.ls(gList(grob(name="gl1"), grob(name="gl2")))
41
gl1
42
gl2
43
> # gTree
44
> grid.ls(gTree(children=gList(grob(name="child")),
45
+               name="parent"))
46
parent
47
  child
48
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child1")),
49
+               name="parent"))
50
parent
51
  child1
52
  child1
53
> 
54
> ###########
55
> # VIEWPORTS
56
> ###########
57
> # Plain viewport
58
> grid.ls(viewport(name="vp1"),
59
+         view=TRUE)
60
vp1
61
> # vpList
62
> grid.ls(vpList(viewport(name="vpl1")),
63
+         view=TRUE)
64
vpl1
65
> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2")),
66
+         view=TRUE)
67
vpl1
68
  1
69
vpl2
70
> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2"),
71
+                viewport(name="vpl3")),
72
+         view=TRUE)
73
vpl1
74
  1
75
vpl2
76
  1
77
vpl3
78
> # vpStack
79
> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2")),
80
+         view=TRUE)
81
vps1
82
  vps2
83
> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2"),
84
+                 viewport(name="vps3")),
85
+         view=TRUE)
86
vps1
87
  vps2
88
    vps3
89
> # vpTrees
90
> grid.ls(vpTree(viewport(name="parentvp"), vpList(viewport(name="childvp"))),
91
+         view=TRUE)
92
parentvp
93
  childvp
94
> grid.ls(vpTree(viewport(name="parentvp"),
95
+                vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
96
+         view=TRUE)
97
parentvp
98
  cvp1
99
    1
100
  cvp2
101
> # vpPaths
102
> grid.ls(vpPath("A"),
103
+         view=TRUE)
104
A
105
> grid.ls(vpPath("A", "B"),
106
+         view=TRUE)
107
A
108
  B
109
> grid.ls(vpPath("A", "B", "C"),
110
+         view=TRUE)
111
A
112
  B
113
    C
114
> 
115
> ##########
116
> # MIXTURES
117
> ##########
118
> # grob with vp viewport
119
> g1 <- grob(vp=viewport(name="gvp"), name="g1")
120
> grid.ls(g1, view=TRUE, full=TRUE)
121
viewport[gvp]
122
  grob[g1]
123
  upViewport[1]
124
> grid.ls(g1, view=TRUE, full=TRUE, grob=FALSE)
125
viewport[gvp]
126
  upViewport[1]
127
> # grob with vp vpList
128
> grid.ls(grob(vp=vpList(viewport(name="vpl")), name="g1"),
129
+         view=TRUE, full=TRUE)
130
viewport[vpl]
131
  grob[g1]
132
  upViewport[1]
133
> grid.ls(grob(vp=vpList(viewport(name="vpl1"), viewport(name="vpl2")),
134
+              name="g1"),
135
+         view=TRUE, full=TRUE)
136
viewport[vpl1]
137
  upViewport[1]
138
viewport[vpl2]
139
  grob[g1]
140
  upViewport[1]
141
> # grob with vp vpStack
142
> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2")),
143
+              name="g1"),
144
+         view=TRUE, full=TRUE)
145
viewport[vps1]
146
  viewport[vps2]
147
    grob[g1]
148
    upViewport[2]
149
> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2"),
150
+                viewport(name="vps3")),
151
+              name="g1"),
152
+         view=TRUE)
153
vps1
154
  vps2
155
    vps3
156
      g1
157
      3
158
> # grob with vp vpTree
159
> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
160
+                vpList(viewport(name="cvp"))),
161
+              name="g1"),
162
+         view=TRUE, full=TRUE)
163
viewport[parentvp]
164
  viewport[cvp]
165
    grob[g1]
166
    upViewport[2]
167
> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
168
+                vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
169
+              name="g1"),
170
+         view=TRUE, full=TRUE)
171
viewport[parentvp]
172
  viewport[cvp1]
173
    upViewport[1]
174
  viewport[cvp2]
175
    grob[g1]
176
    upViewport[2]
177
> # gTree with vp viewport
178
> # and child grob with vp viewport
179
> grid.ls(gTree(children=gList(grob(vp=viewport(name="childvp"), name="cg1"),
180
+                 grob(name="cg2")),
181
+               name="parent",
182
+               vp=viewport(name="parentvp")),
183
+         view=TRUE)
184
parentvp
185
  parent
186
    childvp
187
      cg1
188
      1
189
    cg2
190
  1
191
> # gTree with childrenvp viewport
192
> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
193
+         view=TRUE, full=TRUE)
194
gTree[gtree]
195
  viewport[vp]
196
    upViewport[1]
197
> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
198
+         view=TRUE, full=TRUE, grob=FALSE)
199
viewport[vp]
200
  upViewport[1]
201
> grid.ls(gTree(children=gList(grob(name="child")),
202
+               name="parent",
203
+               childrenvp=viewport(name="vp")),
204
+         view=TRUE, full=TRUE)
205
gTree[parent]
206
  viewport[vp]
207
    upViewport[1]
208
  grob[child]
209
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
210
+               name="parent",
211
+               childrenvp=viewport(name="vp")),
212
+         view=TRUE, full=TRUE)
213
gTree[parent]
214
  viewport[vp]
215
    upViewport[1]
216
  grob[child1]
217
  grob[child2]
218
> grid.ls(gTree(children=gList(grob(name="child")),
219
+               childrenvp=viewport(name="vp"),
220
+               name="parent"), 
221
+         view=TRUE, full=TRUE)
222
gTree[parent]
223
  viewport[vp]
224
    upViewport[1]
225
  grob[child]
226
> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
227
+               name="parent",
228
+               childrenvp=viewport(name="vp")),
229
+         view=TRUE, full=TRUE, grob=FALSE)
230
viewport[vp]
231
  upViewport[1]
232
> # gTree with childrenvp vpTree
233
> grid.ls(gTree(childrenvp=vpTree(parent=viewport(name="vp1"),
234
+                 children=vpList(viewport(name="vp2"))),
235
+               name="gtree"),
236
+         view=TRUE, full=TRUE)
237
gTree[gtree]
238
  viewport[vp1]
239
    viewport[vp2]
240
      upViewport[2]
241
> grid.ls(gTree(children=gList(grob(name="child")),
242
+               name="parent",
243
+               childrenvp=vpTree(parent=viewport(name="vp1"),
244
+                 children=vpList(viewport(name="vp2")))),
245
+         view=TRUE, full=TRUE)
246
gTree[parent]
247
  viewport[vp1]
248
    viewport[vp2]
249
      upViewport[2]
250
  grob[child]
251
> # gTree with childrenvp vpTree
252
> # and child grob with vp vpPath
253
> # A gTree, called "parent", with childrenvp vpTree (vp2 within vp1)
254
> # and child grob, called "child", with vp vpPath (down to vp2)
255
> sampleGTree <- gTree(name="parent",
256
+                      children=gList(grob(name="child", vp="vp1::vp2")),
257
+                      childrenvp=vpTree(parent=viewport(name="vp1"),
258
+                                        children=vpList(viewport(name="vp2"))))
259
> grid.ls(sampleGTree)
260
parent
261
  child
262
> # Show viewports too
263
> grid.ls(sampleGTree, view=TRUE)
264
parent
265
  vp1
266
    vp2
267
      2
268
  vp1
269
    vp2
270
      child
271
      2
272
> # Only show viewports
273
> grid.ls(sampleGTree, view=TRUE, grob=FALSE)
274
vp1
275
  vp2
276
    2
277
vp1
278
  vp2
279
    2
280
> # Alternate displays
281
> # nested listing, custom indent
282
> grid.ls(sampleGTree, view=TRUE, print=nestedListing, gindent="--")
283
parent
284
--vp1
285
----vp2
286
------2
287
--vp1
288
----vp2
289
------child
290
------2
291
> # path listing
292
> grid.ls(sampleGTree, view=TRUE, print=pathListing)
293
            | parent
294
vp1
295
vp1::vp2
296
vp1::vp2::2
297
vp1
298
vp1::vp2
299
vp1::vp2    | parent::child
300
vp1::vp2::2
301
> # path listing, without grobs aligned
302
> grid.ls(sampleGTree, view=TRUE, print=pathListing, gAlign=FALSE)
303
 | parent
304
vp1
305
vp1::vp2
306
vp1::vp2::2
307
vp1
308
vp1::vp2
309
vp1::vp2 | parent::child
310
vp1::vp2::2
311
> # grob path listing 
312
> grid.ls(sampleGTree, view=TRUE, print=grobPathListing)
313
         | parent
314
vp1::vp2 | parent::child
315
> # path listing, grobs only
316
> grid.ls(sampleGTree, print=pathListing)
317
 | parent
318
 | parent::child
319
> # path listing, viewports only
320
> grid.ls(sampleGTree, view=TRUE, grob=FALSE, print=pathListing)
321
vp1
322
vp1::vp2
323
vp1::vp2::2
324
vp1
325
vp1::vp2
326
vp1::vp2::2
327
> # raw flat listing
328
> str(grid.ls(sampleGTree, view=TRUE, print=FALSE))
329
List of 6
330
 $ name   : chr [1:8] "parent" "vp1" "vp2" "2" ...
331
 $ gDepth : num [1:8] 0 1 1 1 1 1 1 1
332
 $ vpDepth: num [1:8] 0 0 1 2 0 1 2 2
333
 $ gPath  : chr [1:8] "" "parent" "parent" "parent" ...
334
 $ vpPath : chr [1:8] "" "" "vp1" "vp1::vp2" ...
60857 ripley 335
 $ type   : chr [1:8] "gTreeListing" "vpListing" "vpListing" "vpUpListing" ...
41993 murrell 336
 - attr(*, "class")= chr "flatGridListing"
337
> 
338
> 
339
> 
340
> 
60857 ripley 341
> proc.time()
342
   user  system elapsed 
81944 ripley 343
  0.310   0.053   0.349