grid.pattern {gridpattern} | R Documentation |
Create patterned grobs by pattern name
Description
grid.pattern()
draws patterned shapes onto the graphic device.
patternGrob()
returns the grid grob objects.
names_pattern
is a character vector of builtin patterns.
Usage
grid.pattern(
pattern = "stripe",
x = c(0, 0, 1, 1),
y = c(1, 0, 0, 1),
id = 1L,
...,
legend = FALSE,
prefix = "pattern_",
default.units = "npc",
name = NULL,
gp = gpar(),
draw = TRUE,
vp = NULL
)
names_pattern
patternGrob(
pattern = "stripe",
x = c(0, 0, 1, 1),
y = c(1, 0, 0, 1),
id = 1L,
...,
legend = FALSE,
prefix = "pattern_",
default.units = "npc",
name = NULL,
gp = gpar(),
draw = TRUE,
vp = NULL
)
Arguments
pattern |
Name of pattern. See Details section for a list of supported patterns. |
x |
A numeric vector or unit object specifying x-locations of the pattern boundary. |
y |
A numeric vector or unit object specifying y-locations of the pattern boundary. |
id |
A numeric vector used to separate locations in x, y into multiple boundaries.
All locations within the same |
... |
Pattern parameters. |
legend |
Whether this is intended to be drawn in a legend or not. |
prefix |
Prefix to prepend to the name of each of the pattern parameters in |
default.units |
A string indicating the default units to use if |
name |
A character identifier. |
gp |
An object of class |
draw |
A logical value indicating whether graphics output should be produced. |
vp |
A Grid viewport object (or NULL). |
Format
An object of class character
of length 18.
Details
Here is a list of the various patterns supported:
- ambient
Noise array patterns onto the graphic device powered by the
ambient
package. Seegrid.pattern_ambient()
for more information.- circle
Circle geometry patterns. See
grid.pattern_circle()
for more information.- crosshatch
Crosshatch geometry patterns. See
grid.pattern_crosshatch()
for more information.- gradient
Gradient array/geometry patterns. See
grid.pattern_gradient()
for more information.- image
Image array patterns. See
grid.pattern_image()
for more information.- magick
imagemagick
array patterns. Seegrid.pattern_magick()
for more information.- none
Does nothing. See
grid::grid.null()
for more information.- pch
Plotting character geometry patterns. See
grid.pattern_pch()
for more information.- placeholder
Placeholder image array patterns. See
grid.pattern_placeholder()
for more information.- plasma
Plasma array patterns. See
grid.pattern_plasma()
for more information.- polygon_tiling
Polygon tiling patterns. See
grid.pattern_polygon_tiling()
for more information.- regular_polygon
Regular polygon patterns. See
grid.pattern_regular_polygon()
for more information.- rose
Rose array/geometry patterns. See
grid.pattern_rose()
for more information.- stripe
Stripe geometry patterns. See
grid.pattern_stripe()
for more information.- text
Text array/geometry patterns. See
grid.pattern_text()
for more information.- wave
Wave geometry patterns. See
grid.pattern_wave()
for more information.- weave
Weave geometry patterns. See
grid.pattern_weave()
for more information.- Custom geometry-based patterns
See https://trevorldavis.com/R/gridpattern/dev/articles/developing-patterns.html for more information.
- Custom array-based patterns
See https://trevorldavis.com/R/gridpattern/dev/articles/developing-patterns.html for more information.
Value
A grid grob object (invisibly in the case of grid.pattern()
).
If draw
is TRUE
then grid.pattern()
also draws to the graphic device as a side effect.
See Also
https://coolbutuseless.github.io/package/ggpattern/index.html
for more details on the ggpattern
package.
Examples
print(names_pattern)
# Once took more >10s on a CRAN autocheck
x_hex <- 0.5 + 0.5 * cos(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6))
y_hex <- 0.5 + 0.5 * sin(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6))
# geometry-based patterns
# 'stripe' pattern
grid::grid.newpage()
grid.pattern("stripe", x_hex, y_hex,
colour="black", fill=c("yellow", "blue"), density = 0.5)
# Can alternatively use "gpar()" to specify colour and line attributes
grid::grid.newpage()
grid.pattern("stripe", x_hex, y_hex,
gp = grid::gpar(col="blue", fill="red", lwd=2))
# 'weave' pattern
grid::grid.newpage()
grid.pattern("weave", x_hex, y_hex, type = "satin",
colour = "black", fill = "lightblue", fill2 = "yellow",
density = 0.3)
# 'regular_polygon' pattern
grid::grid.newpage()
grid.pattern_regular_polygon(x_hex, y_hex, colour = "black",
fill = c("blue", "yellow", "red"),
shape = c("convex4", "star8", "circle"),
density = c(0.45, 0.42, 0.4),
spacing = 0.08, angle = 0)
# can be used to achieve a variety of 'tiling' effects
grid::grid.newpage()
grid.pattern_regular_polygon(x_hex, y_hex, color = "transparent",
fill = c("white", "grey", "black"),
density = 1.0, spacing = 0.1,
shape = "convex6", grid = "hex")
if (suppressPackageStartupMessages(requireNamespace("magick", quietly = TRUE))) {
# array-based patterns
# 'image' pattern
logo_filename <- system.file("img", "Rlogo.png" , package="png")
grid::grid.newpage()
grid.pattern("image", x_hex, y_hex, filename=logo_filename, type="fit")
}
if (suppressPackageStartupMessages(requireNamespace("magick", quietly = TRUE))) {
# 'plasma' pattern
grid::grid.newpage()
grid.pattern("plasma", x_hex, y_hex, fill="green")
}