This function takes a matrix of grobs and create a gtable matching with the grobs in the same position as they were in the matrix, with the given heights and widths.
gtable_matrix(
name,
grobs,
widths = NULL,
heights = NULL,
z = NULL,
respect = FALSE,
clip = "on",
vp = NULL
)
a string giving the name of the table. This is used to name the layout viewport
a single grob or a list of grobs
a unit vector giving the width of each column
a unit vector giving the height of each row
a numeric matrix of the same dimensions as grobs
,
specifying the order that the grobs are drawn.
a logical vector of length 1: should the aspect ratio of
height and width specified in null units be respected. See
grid.layout()
for more details
should drawing be clipped to the specified cells
("on"
), the entire table ("inherit"
), or not at all
("off"
)
a grid viewport object (or NULL).
A gtable of the same dimensions as the grobs matrix.
Other gtable construction:
gtable_col()
,
gtable_row()
,
gtable_spacer
,
gtable()
library(grid)
a <- rectGrob(gp = gpar(fill = "red"))
b <- circleGrob()
c <- linesGrob()
row <- matrix(list(a, b, c), nrow = 1)
col <- matrix(list(a, b, c), ncol = 1)
mat <- matrix(list(a, b, c, nullGrob()), nrow = 2)
gtable_matrix("demo", row, unit(c(1, 1, 1), "null"), unit(1, "null"))
#> TableGrob (1 x 3) "demo": 3 grobs
#> z cells name grob
#> 1 1 (1-1,1-1) demo rect[GRID.rect.120]
#> 2 2 (1-1,2-2) demo circle[GRID.circle.121]
#> 3 3 (1-1,3-3) demo lines[GRID.lines.122]
gtable_matrix("demo", col, unit(1, "null"), unit(c(1, 1, 1), "null"))
#> TableGrob (3 x 1) "demo": 3 grobs
#> z cells name grob
#> 1 1 (1-1,1-1) demo rect[GRID.rect.120]
#> 2 2 (2-2,1-1) demo circle[GRID.circle.121]
#> 3 3 (3-3,1-1) demo lines[GRID.lines.122]
gtable_matrix("demo", mat, unit(c(1, 1), "null"), unit(c(1, 1), "null"))
#> TableGrob (2 x 2) "demo": 4 grobs
#> z cells name grob
#> 1 1 (1-1,1-1) demo rect[GRID.rect.120]
#> 2 2 (2-2,1-1) demo circle[GRID.circle.121]
#> 3 3 (1-1,2-2) demo lines[GRID.lines.122]
#> 4 4 (2-2,2-2) demo null[GRID.null.123]
# Can specify z ordering
z <- matrix(c(3, 1, 2, 4), nrow = 2)
gtable_matrix("demo", mat, unit(c(1, 1), "null"), unit(c(1, 1), "null"), z = z)
#> TableGrob (2 x 2) "demo": 4 grobs
#> z cells name grob
#> 1 3 (1-1,1-1) demo rect[GRID.rect.120]
#> 2 1 (2-2,1-1) demo circle[GRID.circle.121]
#> 3 2 (1-1,2-2) demo lines[GRID.lines.122]
#> 4 4 (2-2,2-2) demo null[GRID.null.123]