pmap_piece {piecepackr} | R Documentation |
Create graphics using data frame input
Description
pmap_piece()
operates on the rows of a data frame
applying .f
to each row (usually grid.piece
).
Usage
pmap_piece(
.l,
.f = pieceGrob,
...,
cfg = getOption("piecepackr.cfg"),
envir = getOption("piecepackr.envir"),
trans = getOption("piecepackr.trans"),
draw = TRUE,
name = NULL,
gp = NULL,
vp = NULL
)
Arguments
.l |
A list of vectors, such as a data frame. The length of |
.f |
Function to be applied to |
... |
Extra arguments to pass to |
cfg |
Piecepack configuration list or |
envir |
Environment (or named list) containing configuration list(s). |
trans |
Function to modify |
draw |
A logical value indicating whether graphics output should be produced. |
name |
A character identifier (for grid) |
gp |
An object of class “gpar”. |
vp |
A |
Details
pmap_piece()
differs from purrr::pmap()
in a few ways:
If
cfg
and/orenvir
are missing attempts to set reasonable defaults.If not
NULL
will first apply functiontrans
to.l
.If the output of
.f
is a grid grob object thenpmap_piece
will return agTree
object with specifiedname
,gp
, andvp
values and ifdraw
is true draw it.If
.l
lacks aname
column or ifname
column is non-unique attempts to generate a reasonable new defaultname
column and use that to name the returngTree
children orlist
values.
See Also
render_piece()
is a higher-level function that wraps this function.
Examples
if (requireNamespace("grid", quietly = TRUE) && piecepackr:::device_supports_unicode()) {
dark_colorscheme <- list(suit_color="darkred,black,darkgreen,darkblue,black",
invert_colors.suited=TRUE, border_color="black", border_lex=2)
traditional_ranks <- list(use_suit_as_ace=TRUE, rank_text=",a,2,3,4,5")
cfg3d <- list(width.pawn=0.75, height.pawn=0.75, depth.pawn=1,
dm_text.pawn="", shape.pawn="convex6", invert_colors.pawn=TRUE,
edge_color.coin="tan", edge_color.tile="tan")
cfg <- pp_cfg(c(dark_colorscheme, traditional_ranks, cfg3d))
grid::grid.newpage()
df_tiles <- data.frame(piece_side="tile_back", x=0.5+c(3,1,3,1), y=0.5+c(3,3,1,1),
suit=NA, angle=NA, z=NA, stringsAsFactors=FALSE)
df_coins <- data.frame(piece_side="coin_back", x=rep(4:1, 4), y=rep(4:1, each=4),
suit=1:16%%2+rep(c(1,3), each=8),
angle=rep(c(180,0), each=8), z=1/4+1/16, stringsAsFactors=FALSE)
df <- rbind(df_tiles, df_coins)
pmap_piece(df, cfg=cfg, op_scale=0.5, default.units="in")
}