Verify the integrity of the column info object
Arguments
- column_info
A data frame describing which columns in
data
to plot. This data frame should contain the following columns:id
(character
, required): A column name indata
to plot. Determines the size of the resulting geoms, and also the color unlesscolor
is specified.id_color
(character
): A column name indata
to use for the color of the resulting geoms. IfNA
, theid
column will be used.id_size
(character
): A column name indata
to use for the size of the resulting geoms. IfNA
, theid
column will be used.name
(character
): A label for the column. IfNA
or""
, no label will be plotted. If this column is missing,id
will be used to generate thename
column.geom
(character
): The geom of the column. Must be one of:"funkyrect"
,"circle"
,"rect"
,"bar"
,"pie"
,"text"
or"image"
. For"text"
, the corresponding column indata
must be acharacter
. For"pie"
, the column must be a list of named numeric vectors. For all other geoms, the column must be anumeric
.group
(character
): The grouping id of each column, must match withcolumn_groups$group
. If this column is missing or all values areNA
, columns are assumed not to be grouped.palette
(character
): Which palette to colour the geom by. Each value should have a matching value inpalettes$palette
.width
: Custom width for this column (default: 1).overlay
: Whether to overlay this column over the previous column. If so, the width of that column will be inherited.legend
: Whether or not to add a legend for this column.hjust
: Horizontal alignment of the bar, must be between [0,1] (only forgeom = "bar"
).vjust
: Vertical alignment of the label, must be between [0,1] (only forgeom = "text"
).size
: Size of the label, must be a numeric value (only forgeom = "text"
).label
: Which column to use as a label (only forgeom = "text"
).directory
: Which directory to use to find the images (only forgeom = "image"
).extension
: The extension of the images (only forgeom = "image"
).draw_outline
: Whether or not to draw bounding guides (only forgeom == "bar"
). Default:TRUE
.options
(list
orjson
): Any of the options above. Any values in this column will be spread across the other columns. This is useful for not having to provide a data frame with 1000s of columns. This column can be a json string.
- data
A data frame with items by row and features in the columns. Must contain one column named
"id"
.
Examples
library(tibble)
data <- tribble(
~id, ~name, ~x, ~y,
"foo", "Foo", 0.5, 0.7,
"bar", "Bar", 1.0, 0.1
)
column_info <- tribble(
~id, ~geom,
"name", "text",
"x", "funkyrect",
"y", "funkyrect"
)
verify_column_info(column_info, data)
#> ℹ Column info did not contain column `name`, using `id` to generate it.
#> ℹ Column info did not contain group information, assuming columns are ungrouped.
#> ℹ Column info did not contain a column called 'palette', generating palettes based on the 'geom' column.
#> ℹ Column info did not contain a column called 'width', generating options based on the 'geom' column.
#> ℹ Column info did not contain a column called 'legend', generating options based on the 'geom' column.
#> # A tibble: 3 × 11
#> id geom name id_color id_size group palette width overlay legend
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <lgl> <lgl>
#> 1 name text Name NA NA NA NA 6 FALSE FALSE
#> 2 x funkyrect X x x NA numerical_p… 1 FALSE TRUE
#> 3 y funkyrect Y y y NA numerical_p… 1 FALSE TRUE
#> # ℹ 1 more variable: draw_outline <lgl>