R: Search for grobs

grid.grep {grid} | R Documentation

## Search for grobs

### Description

Given a gPath, find all matching grobs on the display list or within a given grob.

### Usage

    grid.grep(path, x = NULL, grobs = TRUE, viewports = FALSE,
              strict = FALSE, grep = FALSE, global = FALSE,
              no.match = character())

### Arguments

`path` | a gPath.
`x` | a grob or `NULL`. If `NULL`, the display list is searched.
`grobs` | A logical value indicating whether to search for grobs.
`viewports` | A logical value indicating whether to search for viewports.
`strict` | A boolean indicating whether the `path` must be matched exactly.
`grep` | Whether the `path` should be treated as a regular expression.
`global` | A boolean indicating whether the function should affect just the first match of the `path`, or whether all matches should be affected.
`no.match` | The value to return if no matches are found.

### Value

Either a gPath or, if `global` is `TRUE` a list of gPaths. If there are no matches, `no.match` is returned.

### See Also

grid.ls()

### Examples

    # A gTree, called "grandparent", with child gTree,
    # called "parent", with childrenvp vpStack (vp2 within vp1)
    # and child grob, called "child", with vp vpPath (down to vp2)
    sampleGTree <- gTree(name="grandparent",
                         children=gList(gTree(name="parent",
                              children=gList(grob(name="child", vp="vp1::vp2")),
                              childrenvp=vpStack(viewport(name="vp1"),
                                                 viewport(name="vp2")))))
    # Searching for grobs
    grid.grep("parent", sampleGTree)
    grid.grep("parent", sampleGTree, strict=TRUE)
    grid.grep("grandparent", sampleGTree, strict=TRUE)
    grid.grep("grandparent::parent", sampleGTree)
    grid.grep("parent::child", sampleGTree)
    grid.grep("[a-z]", sampleGTree, grep=TRUE)
    grid.grep("[a-z]", sampleGTree, grep=TRUE, global=TRUE)
    # Searching for viewports
    grid.grep("vp1", sampleGTree, viewports=TRUE)
    grid.grep("vp2", sampleGTree, viewports=TRUE)
    grid.grep("vp", sampleGTree, viewports=TRUE, grep=TRUE)
    grid.grep("vp2", sampleGTree, viewports=TRUE, strict=TRUE)
    grid.grep("vp1::vp2", sampleGTree, viewports=TRUE)
    # Searching for both
    grid.grep("[a-z]", sampleGTree, viewports=TRUE, grep=TRUE, global=TRUE)

[Package grid version 3.5.1 Index]